سلام
حتما تو خیلی از وبلاگ ها یا وب سایت ها دیدید که مثلا نوشته تعداد بازدید از پست فلان تا . شاید خود این موضوع خیلی مهم نباشه ولی مثلا اگه بخواید پربازدیدترین مطالب سایتتون رو نشون بدید این قضه براتون مهم میشه .
خب برای این کار اول کد زیر رو تو فایل functions.php قالبتون قرار بدید .
function getPostViews($postID){ $count_key = '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'; } function setPostViews($postID) { $count_key = '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); } } // Remove issues with prefetching adding extra views remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
حالا کد زیر رو توی حلقه فراخوانی نوشته هاتون قرار بدید . میشه بعد از دستور while . این حلقه توی single.php هستش .
<?php setPostViews(get_the_ID()); ?>
خب حالا تو همون فایل single.php هر جایی که میخواید تعداد بازدید هاتون نمایش داده بشه کد زیر رو قرار بدید .
<?php echo getPostViews(get_the_ID()); ?>
این از نمایش تعداد بازدید حالا اگه بخواید مثلا توی نوار کناریتون پربازدید ترین پست ها رو قرار بدید .
این کد رو تو فایل sidebar.php قرار بدید .
<?php $mostvisited_query = new WP_Query(array( 'meta_key' =>'post_views_count', 'post_type' =>'post', 'order' =>'descending', 'orderby' =>'meta_value_num', 'posts_per_page' =>'20', 'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 )); ?>
شما در کد بالا می تونید نوع پست و تعداد پست های نمایش داده شده رو هم تغییر بدید . هم چنین اگه می خواید فقط برای یک دسته خاص هم نشون داده بشه می تونید با اضافه کردن کد زیر مثلا در خط بعد از orderby این کار رو انجام بدید .
'cat' =>'7',
خب حالا باید فراخوانیشون بکنیم . برای این کار مثلا می تونید از کد زیر استفاده کنید .
<ul> <?php if($mostvisited_query->have_posts()) : while($mostvisited_query->have_posts()) : $mostvisited_query->the_post();?> <li> <a class="<?php echo $extra_class; ?> <?php if(get_post_custom_values('imp')) echo ' '.get_post_meta($post->ID, 'imp', true);?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endwhile;endif;?> </ul> <?php wp_reset_query(); ?>
موفق باشید