سلام به کاربران وردپرس پارسی ..
در این نوشته به شما نشان خواهیم داد که چگونه با این کد، پست های محبوب از لحاظ بازدید یعنی پربازدیدترین مطالب را بدون افزونه در یک سایت وردپرسی به دست آورید و آنها را به نمایش بگذارید.
اولین کاری که باید انجام بدید ساخت توابع ( فانکشن) است که تعداد بازدیدها از یک نوشته را محاسبه کرده و آن ها را به عنوان یک زمینه دلخواه یا همان Custom Field ذخیره می کند. برای انجام این کار، کد زیر را در فایل functions.php پوسته قالب کپی کنید:
حال که فانکشن خود را در جای مناسبش قرار دادیم، باید آن را در فایل سینگل فراخوانی کنیم. با این راه، فانکشن دقیقا می داند که کدام نوشته از لحاظ بازدید در رتبه بالاتری قرار می گیرد. برای انجام این عمل، شما باید کد زیر را داخل لوپ قرار دهید.کد PHP:
function wpb_set_post_views($postID) { $count_key = 'wpb_post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); }}//To keep the count accurate, lets get rid of prefetchingremove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
در صورتی که از پوسته فرزند (Child Theme) استفاده می کنید یا حتی برای راحتی کار خودتان، می بایست فراخوانی این فانکشن را می بایست به دلیل خاصی در هدر استفاده کنید، می بایست کد زیر را در فایل functions.php پوسته اضافه کنید:کد PHP:
wpb_set_post_views(get_the_ID());
پس از انجام این کار، پس از هر بار که کاربر از پست دیدن می کند، custom field نیز آپدیت می شود.کد PHP:
function wpb_track_post_views ($post_id) { if ( !is_single() ) return; if ( empty ( $post_id) ) { global $post; $post_id = $post->ID; } wpb_set_post_views($post_id);}add_action( 'wp_head', 'wpb_track_post_views');
حالا شما هر چیزی که برای انجام کارهایی از جمله نمایش تعداد بازدیدهای یک نوشته و یا قرار دادن نوشته ها بر اساس تعداد بازدیدها لازم است را در اختیار دارید. در ادامه چگونگی انجام این اعمال را به شما نشان خواهیم داد.
اگر می خواهید که تعداد بازدیدهای یک نوشته (که معمولا جایی نزدیک به قسمتی است که تعداد دیدگاه را نشان می دهد) را نمایش دهید، اولین کاری که باید به انجام برسانید این است که کد زیر را در فایل functions.php پوسته وارد کنید:
سپس کد زیر را داخل لوپ نوشته اضافه نمایید:کد PHP:
function wpb_get_post_views($postID){ $count_key = 'wpb_post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views';}
به عنوان سس فرانسوی ، اگر هم مایل هستید نوشته ها را براساس تعداد بازدیدها مرتب کنید، می توانید به راحتی با استفاده از پارامتر wp_query post_meta به هدف خود برسید. پایه ای ترین مثالی که می توان از یک لوپ کوئری زد، به شکل زیر خواهد بود:کد PHP:
wpb_get_post_views(get_the_ID());
بدون افزونه =زندگی راحت تر ..امیدودارم خوشتون اومده باشهکد PHP:
<?php$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'wpb_post_views_count', 'order' => 'DESC' ) );while ( $popularpost->have_posts() ) : $popularpost->the_post();the_title();endwhile;?>
موفق باشید
منبع :سالاد مخصوص پربازدیدترین مطالب وردپرس با سس فرانسوی