您可以通过以下方式调整第一个循环以显示粘性帖子或最新帖子:请注意:您必须重置自定义查询
<?php
$args = array(
\'posts_per_page\' => 1,
\'post__in\' => get_option( \'sticky_posts\' ),
\'ignore_sticky_posts\' => 1
);
$my_query = new WP_Query( $args );
$do_not_duplicate = array();
while ( $my_query->have_posts() ) : $my_query->the_post();
$do_not_duplicate[] = $post->ID; ?>
<div id="post-<?php the_ID(); ?>" <?php post_class( \'\' ); ?> >
<div class="featuredimage">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail(\'home-thumbnail\'); ?></a>
</div>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
</div>
<?php endwhile; ?>
<?php wp_reset_postdata(); //VERY VERY IMPORTANT?>
资料来源:
Sticky PostsEDIT
从主查询中删除粘性帖子,您可以使用
pre_get_posts
在执行主查询之前删除粘性帖子的操作。在函数中粘贴以下内容。php
add_action(\'pre_get_posts\', \'wpse161279_ignore_sticky_posts\');
// the function that does the work
function wpse161279_ignore_sticky_posts($query)
{
if (!is_admin() && $query->is_main_query())
$query->set(\'post__not_in\', get_option(\'sticky_posts\'));
}
EDIT 2
我还没有测试过这个,也不熟悉这个,但我认为您可以尝试做以下操作
add_action(\'pre_get_posts\', \'wpse161279_ignore_sticky_posts\');
// the function that does the work
function wpse161279_ignore_sticky_posts($query)
{
if (!is_admin() && $query->is_main_query()) {
$sticky = get_option( \'sticky_posts\' );
$query->set( \'post__not_in\', array( $sticky[0] ) );
}
}
EDIT 3
将以下代码粘贴到问题中第一个代码块的第4行之后,然后发布结果
<pre><?php var_dump($wp_query->query_vars[\'post__not_in\']); ?></pre>
<pre><?php var_dump(get_option( \'sticky_posts\' )); ?></pre>
<pre><?php var_dump($wp_query->query_vars[\'ignore_sticky_posts\']); ?></pre>
你应该得到比这些更熟悉的结果
EDIT 4
将以下内容添加到上述代码中。这将打印第一篇文章的ID。如果它与第二个结果的第二个值相匹配,则意味着您的粘性贴子实际上是按其应该的方式显示的
<pre><?php var_dump($wp_query->posts[0]->ID); ?></pre>
EDIT 5
仅供参考,这就是你的网站在我这边的样子。我刚刚删除了文本部分并保留了图像