WordPress白天显示帖子

时间:2015-04-15 03:37:16

标签: php wordpress

我正在运行一个音乐网站,目前在我的索引页面上我按照" 类别"过滤了最新的内容,我怎么想知道如何制作它每天过滤。

我假设我需要在我的functions.php文件中完成一些自定义工作,因为我正在运行当前正在运行的默认模拟,这是我当前的代码。

<div class="list">
<h4 style="padding-left: 4px; ">Latest Singles.</h4>
<?php query_posts('posts_per_page=10&cat=2'); if (have_posts()) : while (have_posts()) : the_post();?> 
<div class="item">
<div class="artwork">
<?php the_post_thumbnail('artwork'); ?>
</div>
<div class="meta">
<strong><a style="color: #777777; text-decoration: none;" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></strong> <br>
<em><?php echo get_the_date(); ?> <?php the_tags(); ?> </em> <br>
<a rel="nofollow" href="<?php the_permalink(); ?>">Download</a>
</div>
</div>
<?php endwhile; endif; ?>

非常感谢任何建议。

1 个答案:

答案 0 :(得分:4)

你永远不应该使用query_posts,它会打破主查询对象和分页。由于这应该是主查询,因此您应该使用pre_get_posts来更改主查询。除页面模板外,您不应该使用自定义查询替换主查询。

这进入了functions.php

add_action( 'pre_get_posts', function ( $q )
{ 

    if ( $q->is_home() && $q->is_main_query() ) {
        $q->set(  'posts_per_page', 10 );
        $q->set( 'cat', 2 );
        $date_query = array(
            array(
                'year'  => $today['year'],
                'month' => $today['mon'],
                'day'   => $today['mday'],
            ),
         );
         $q->set( 'date_query', $date_query );
    }

});

应该注意的是,你的index.php应该是这样的,没有自定义查询,没有什么,只是正常的默认循环

if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();

        // Rest of your HTML mark up and loop elements

    }
}