<?php
/*
Plugin Name: Real-Time Visitor Counter
Description: O an aktif olan ziyaretçileri sayı olarak gösterir.
Version: 1.0
Author: Your Name
*/
// Ziyaretçilerin bilgilerini kaydetmek için bir fonksiyon
function rtc_track_active_visitors() {
if (is_single() || is_page()) {
global $post;
// Kullanıcının IP adresini ve aktif sayfa ID'sini al
$ip_address = $_SERVER['REMOTE_ADDR'];
$page_id = $post->ID;
// Ziyaretçinin aktif olduğu sayfayı ve IP adresini saklamak
$active_visitors = get_option('active_visitors', array());
// Ziyaretçi verilerini kaydet veya güncelle
$active_visitors[$ip_address] = array(
'page_id' => $page_id,
'timestamp' => time()
);
// Veriyi güncelle
update_option('active_visitors', $active_visitors);
}
}
add_action('wp_head', 'rtc_track_active_visitors');
// Ziyaretçileri sayı olarak görüntülemek için bir fonksiyon
function rtc_display_active_visitors_count($content) {
if (is_single() || is_page()) {
// Veritabanından aktif ziyaretçileri al
$active_visitors = get_option('active_visitors', array());
$current_page_id = get_the_ID();
// Şu anki sayfayı ziyaret eden kullanıcıları filtrele
$active_on_this_page = array_filter($active_visitors, function($visitor) use ($current_page_id) {
return $visitor['page_id'] == $current_page_id && (time() - $visitor['timestamp']) < 300; // 5 dakikalık süre
});
// Aktif ziyaretçi sayısını al
$visitor_count = count($active_on_this_page);
// Ziyaretçi sayısını içeriğin altına ekle
$content .= '<p>Şu an bu sayfayı inceleyenler sayısı: <strong>' . esc_html($visitor_count) . '</strong> kişi.</p>';
}
return $content;
}
add_filter('the_content', 'rtc_display_active_visitors_count');
// Ziyaretçi bilgilerini belirli aralıklarla temizlemek için bir fonksiyon
function rtc_clean_up_old_visitors() {
$active_visitors = get_option('active_visitors', array());
// 5 dakikadan daha eski ziyaretçileri sil
foreach ($active_visitors as $ip => $visitor) {
if (time() - $visitor['timestamp'] > 300) {
unset($active_visitors[$ip]);
}
}
// Veriyi güncelle
update_option('active_visitors', $active_visitors);
}
add_action('wp_footer', 'rtc_clean_up_old_visitors');demo:
türkiye Ajans