প্রতিটি লেখক পৃষ্ঠার (কাস্টম লেখকের পৃষ্ঠা টেম্পলেট) জন্য আমাকে অনলাইন স্ট্যাটাস (অনলাইন / অফলাইন) প্রদর্শন করতে হবে।
is_user_logged_in () কেবলমাত্র বর্তমান ব্যবহারকারীর জন্য প্রযোজ্য এবং আমি বর্তমান লেখককে লক্ষ্য করে একটি প্রাসঙ্গিক পদ্ধতির সন্ধান করতে পারি না যেমন is_author_logged_in ()
কোন ধারনা?
উত্তর
একটি ট্রিক পনি ট্রান্সিয়েন্টস ব্যবহার করে দুটি থেকে তিনটি ক্রিয়াকলাপের জন্য কোডিং প্রস্তুত করার জন্য যথেষ্ট সদয় ছিল, এমন কিছু যা আমি আগে ব্যবহার করি নি।
http://codex.wordpress.org/Transients_API
এটি ফাংশন.এফপিতে যুক্ত করুন:
add_action('wp', 'update_online_users_status');
function update_online_users_status(){
if(is_user_logged_in()){
// get the online users list
if(($logged_in_users = get_transient('users_online')) === false) $logged_in_users = array();
$current_user = wp_get_current_user();
$current_user = $current_user->ID;
$current_time = current_time('timestamp');
if(!isset($logged_in_users[$current_user]) || ($logged_in_users[$current_user] < ($current_time - (15 * 60)))){
$logged_in_users[$current_user] = $current_time;
set_transient('users_online', $logged_in_users, 30 * 60);
}
}
}
এটিকে লেখক.এফপি (অথবা অন্য কোনও পৃষ্ঠা টেম্পলেট) এ যুক্ত করুন:
function is_user_online($user_id) {
// get the online users list
$logged_in_users = get_transient('users_online');
// online, if (s)he is in the list and last activity was less than 15 minutes ago
return isset($logged_in_users[$user_id]) && ($logged_in_users[$user_id] > (current_time('timestamp') - (15 * 60)));
}
$passthis_id = $curauth->ID;
if(is_user_online($passthis_id)){
echo 'User is online.';}
else {
echo'User is not online.';}
দ্বিতীয় উত্তর (ব্যবহার করবেন না)
এই উত্তর রেফারেন্স অন্তর্ভুক্ত করা হয়েছে। ওয়ান ট্রিক পনি দ্বারা চিহ্নিত হিসাবে, এটি অনাকাঙ্ক্ষিত পদ্ধতির কারণ প্রতিটি পৃষ্ঠার লোডে ডাটাবেস আপডেট করা হয়। আরও তদন্তের পরে কোডটি কেবল বর্তমান ব্যবহারকারীর লগ-ইন স্থিতিটি বর্তমান লেখকের সাথে এটি মিলে না গিয়ে কেবল সনাক্ত করার জন্য মনে হয়েছিল।
1) এই প্লাগইনটি ইনস্টল করুন: http://wordpress.org/extend/plugins/ WHo-is-online /
2) আপনার পৃষ্ঠা টেম্পলেটটিতে নিম্নলিখিতগুলি যুক্ত করুন:
//Set the $curauth variable
if(isset($_GET['author_name'])) :
$curauth = get_userdatabylogin($author_name);
else :
$curauth = get_userdata(intval($author));
endif;
// Define the ID of whatever authors page is being viewed.
$authortemplate_id = $curauth->ID;
// Connect to database.
global $wpdb;
// Define table as variable.
$who_is_online_table = $wpdb->prefix . 'who_is_online';
// Query: Count the number of user_id's (plugin) that match the author id (author template page).
$onlinestatus_check = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM ".$who_is_online_table." WHERE user_id = '".$authortemplate_id."';" ) );
// If a match is found...
if ($onlinestatus_check == "1"){
echo "<p>User is <strong>online</strong> now!</p>";
}
else{
echo "<p>User is currently <strong>offline</strong>.</p>";
}