如何在过去24小时内显示WordPress中的热门帖子?

时间:2013-11-27 作者:diwas bhattarai

我的代码上有query\\u帖子。这将显示有史以来最受欢迎的帖子。但我想展示一下过去24小时内流行的帖子。我该怎么做?

<?php query_posts(\'orderby=comment_count&order=DESC&paged=\' . get_query_var(\'paged\'));?>
我在这里看到了许多与此主题相关的答案,但不完全是此代码。以下是我的完整代码。

<?php
/*
Template Name: try
*/
?>
<?php get_header(); ?>
    <div id="content">
                 <div class="filter_bar"><div class="fb_title">Blog Archieves</div></div>
          <div id="content_inner">
        <?php if ( ! dynamic_sidebar( \'Alert\' ) ) : ?>
            <!--Wigitized \'Alert\' for the home page -->
        <?php endif ?>

         <div id="blog_wrapper">


 <?php query_posts(\'showposts=15&orderby=comment_count&order=DESC&paged=\' . get_query_var(\'paged\'));?>
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

          <ul class="lp_lists">
            <li class="lp_container">
                <div class="lp_left">
                    <?php if(has_post_thumbnail()) :?>
                    <div class="thumbnailimg">
                            <?php the_post_thumbnail(); ?>
                    </div>
                    <?php endif; ?>
                    <div class="lp_desc">
                     <?php the_excerpt(); ?>
                    </div>
                </div><!--lp left ends-->
                <div class="lp_right">
                    <div class="lp_title">
                       <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                    </div>
                    <div class="lp_category">
                        <?php the_category(\', \') ?>
                    </div>
                    <div class="lp_dates">
                       <?php echo get_the_date(); ?><span class="spacer">at</span><?php echo get_the_time(); ?>
                    </div>
                 <?php if(function_exists(kkLikeButton())){kkLikeButton();}?>

                </div><!--lp right ends-->
                <div style="clear: both;"></div>
            </li><!--lp container ends-->
            </ul>
            <div style="clear: both;"></div>
                <?php endwhile; else: ?>
           <div class="no-results">
            <p><strong><?php _e(\'There has been an error.\'); ?></strong></p>
            <p><?php _e(\'We apologize for any inconvenience, please hit back on your browser or use the search form below.\'); ?></p>
            <?php get_search_form(); /* outputs the default Wordpress search form */ ?>
        </div><!--noResults-->
        <?php endif; ?>
          </div>

        <div class="oldernewer">
            <p class="older"><?php next_posts_link(\'&laquo; Older Entries\') ?></p>
            <p class="newer"><?php previous_posts_link(\'Newer Entries &raquo;\') ?></p>
        </div><!--.oldernewer-->
             </div><!--content_inner ends-->
    </div><!--#content-->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

3 个回复
最合适的回答,由SO网友:Anudeep Sharma 整理而成

http://wordpress.org/plugins/wordpress-popular-posts/ 使用此插件

您可以使用时间范围-列出您博客中在特定时间范围内最受欢迎的帖子(例如,过去24小时、过去7天、过去30天等)!

去插件页面试试,我想你会满意的

SO网友:Rahil Wazir

请不要使用query_posts. 有关说明,请阅读here.

要仅显示当天的帖子,您可以使用以下参数进行查询:

只需替换文件中的这两行:

<?php query_posts(\'showposts=15&orderby=comment_count&order=DESC&paged=\' . get_query_var(\'paged\'));?>
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
使用此选项:

<?php
 $_args = array(
     \'showposts\' => 15,
     \'orderby\' => \'comment_count\',
     \'order\' => \'DESC\',
     \'paged\' => get_query_var(\'paged\'),
     \'date_query\' => array(
         array(
            \'day\' => date(\'d\'),
        \'monthnum\' => date(\'M\'),
        \'year\' => date(\'Y\'),
         ),
      ),
     \'meta_key\' => \'kklike_value\',
     \'meta_value\' => \'meta_value_num\',
 );

    $loop = new WP_Query($_args);
    if ($loop->have_posts()) :
        while ($loop->have_posts()) : $loop->the_post(); ?>

Edited:

好的,您必须再添加这两个键和值。完整代码见上文。

\'meta_key\' => \'kklike_value\',
\'meta_value\' => \'meta_value_num\',

SO网友:Maruti Mohanty

@Rahil的回答是正确的,唯一的原因是他使用了date_query 在WordPress版本的答案中3.7 因此,如果您使用的是较低版本,它将不适用于您。您可以尝试以下代码来完成此操作

假设为当天24小时平均值

<?php
$args = array(
    \'showposts\' => 15,
    \'orderby\'   => \'comment_count\',
    \'order\'     => \'DESC\',
    \'paged\'     => get_query_var(\'paged\'),
    \'monthnum\'  => date(\'m\'),
    \'day\'       => date(\'d\'),
    \'year\'      => date(\'Y\')
);

   $loop = new WP_Query($args);
   if ($loop->have_posts()) :
       while ($loop->have_posts()) : $loop->the_post(); ?>

结束

相关推荐