我希望能够使用query_posts或$custom_query = new WP_Query()创建自定义循环,并且能够发布粘性帖子。
例如,我在一个名为News的页面上有一个自定义循环,它循环“news”-category中的帖子,并在它们的基础上构建一个很好的砖石网格。然后,循环的项目链接到实际的文章。
<?php $custom_query = new WP_Query('cat=8'); // boxes loop
while($custom_query->have_posts()) : $custom_query->the_post(); ?>
<div <?php post_class('newsbox box '); ?> id="post-<?php the_ID(); ?>">
<?php //if looplink exists, looplink
$looplink = get_post_meta( get_the_ID(), 'linkki', true );
if( ! empty( $looplink ) ) :?> <a class="looplink" target="_blank" href="<?php $linkki = get_post_meta($id, 'linkki', true ); if( ! empty( $linkki ) ) { echo $linkki; } ?>"></a>
<?php endif; //end looplink ?>
<h3><?php the_title(); ?></h3>
<?php if ( has_post_thumbnail() ) {the_post_thumbnail();} ?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<?php wp_reset_postdata(); // reset the query ?>我也使用这个循环来显示社交媒体小部件,所以这些应该总是放在文章的前几篇(=粘性)。
我不完全满意的一个想法是,不指定要循环的类别,而是指定要排除的不需要的类别。出于某种原因,它似乎可以让Sticky帖子正常工作。有没有一种方法可以用一些简单的函数来实现这个功能,而不需要
query_posts('cat=-1,-2,-3,-4');等所有的循环?
当然,一个解决方案会使粘性帖子总是粘性的,无论我是在主页中使用它们,还是在自定义循环中显示特定的类别或任何地方。
发布于 2013-12-03 19:08:13
这排除了所有粘滞的帖子。
query_posts( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );要包含粘滞帖子,请执行以下操作:
$args = array(
'posts_per_page' => 1,
'post__in' => get_option( 'sticky_posts' ),
'ignore_sticky_posts' => 1
);
query_posts( $args );ignore_sticky_posts :忽略粘帖或不忽略( 3.1版本中可用,替换了caller_get_posts参数)。默认值为0-不要忽略粘性帖子。注意:忽略/排除包含在返回帖子开头的粘性帖子,但该粘性帖子仍将按该返回帖子列表的自然顺序返回。
https://stackoverflow.com/questions/20220884
复制相似问题