در تاپیک قبلی نحوه نمایش مطالب تصادفی در وردپرس را آموزش دادیم، اما در این تاپیک قصد داریم نحوه نمایش مطالب محبوب و پرمخاطب بر اساس تعداد نظرات از یک دسته بندی خاص را آموزش دهیم. شما با استفاده از این کد می توانید یک دسته بندی خاص را تعیین کنید تا مطالب آن دسته بندی دریافت و بر اساس تعداد نظرات مرتب سازی شوند. از این کد می توان مصارف گوناگونی داشت. در ادامه همراه بی تاک باشید.
نمایش مطالب محبوب برای دسته بندی خاص
<?php
$args=array(
'cat' => 3,
'orderby' => 'comment_count',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 6,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php }
wp_reset_query(); ?>
تنظیمات:
- بجای عدد 3 در خط
'cat' => 3,
شناسه دسته بندی موردنظر را وارد کنید.
- بجای عدد 6 در خط
'posts_per_page' => 6,
تعداد مطالبی که باید نمایش داده شود را وارد کنید.
- در خط
'post_type' => 'post',
بجای post می توانید نام پست تایپ دلخواهتان را وارد کنید.
- بجای DESC در خط
'order' => 'DESC',
می توانید از ASC استفاده کنید تا لیست را برعکس کنید. یعنی بجای بیشترین کامنت، مطالبی که کمترین کامنت را دارند نمایش داده شوند.
اگر کد بالا عملکردی نداشت، از این کد استفاده کنید:
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>
<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>
</ul>
نمایش مطالبی که در آینده منتشر خواهند شد
و برای نمایش مطالبی که در آینده منتشر خواهند شد و زمان بندی شده اند، از این کد استفاده کنید:
<?php query_posts('showposts=10&post_status=future'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div >
<p class><b><?php the_title(); ?></b><?php edit_post_link('e',' (',')'); ?><br />
<span><?php the_time('j. F Y'); ?></span></p>
</div>
<?php endwhile; else: ?><p>هیچ مطلبی در آینده منتشر نخواهد شد</p><?php endif; ?>
بجای عدد 10 در خط اول تعداد مطالبی که باید نمایش داده شوند را وارد کنید.