我正在运行一个音乐网站,目前在我的索引页面上我按照" 类别"过滤了最新的内容,我怎么想知道如何制作它每天过滤。
我假设我需要在我的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; ?>
非常感谢任何建议。
答案 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
}
}