我想创建一个页面,显示所有类别的帖子。我的目标是排除只有粘性帖子的类别。这是目前为止还不起作用的部分。
我当前的结果如下所示:
category 1 <1号岗位
2号岗位
category 2
第3后
第4后
category 3
category 4 <6号岗位
7号岗位
。。。因此,在本例中,wp\\u查询忽略了“category 3”的粘性帖子,但仍然显示该类别,因为它有一个隐藏的粘性帖子。在本例中,“类别3”应消失。
$categories = get_categories( array(
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'parent\' => 0,
\'hide_empty\' => 1,
) );
foreach ( $categories as $category ) {
printf( \'<a href="%1$s">%2$s</a><br />\',
esc_url( get_category_link( $category->term_id ) ),
esc_html( $category->name )
);
// COUNT TO TEST IT:
echo "Posts: " . $category->category_count . " | " ;
echo "Sticky Posts:" . count(get_option(\'sticky_posts\')) . "<br>";
$cat_args = array (
\'category_name\' => $category->name,
\'posts_per_page\' => 10,
\'ignore_sticky_posts\' => 0,
\'post__not_in\' => get_option(\'sticky_posts\')
);
$cat_query = new WP_Query( $cat_args );
if ( $cat_query->have_posts() ) : while ( $cat_query->have_posts() ) : $cat_query->the_post();
the_title(); ?><br><?php
endwhile; endif;
wp_reset_query();
如何解决此问题?可能正在统计某个特定类别的sticky\\u帖子?我不知道该怎么说。。。
还是有其他解决方案?
SO网友:allenstein
我通过重新连接foreach和WP\\u查询结构找到了一个解决方案:
$categories = get_categories( array(
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'parent\' => 0,
\'hide_empty\' => 1,
) );
foreach ( $categories as $category ) {
$cat_args = array (
\'category_name\' => $category->name,
\'posts_per_page\' => 10,
\'ignore_sticky_posts\' => 0,
\'post__not_in\' => get_option(\'sticky_posts\'),
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'parent\' => 0,
\'hide_empty\' => 1,
);
$cat_query = new WP_Query( $cat_args );
// The Loop
if ( $cat_query->have_posts() ) :
printf( \'<br/><a href="%1$s">%2$s</a><br/>\',
esc_url( get_category_link( $category->term_id ) ),
esc_html( $category->name )
);
while ( $cat_query->have_posts() ) : $cat_query->the_post();
the_title();
?><br/><?php
endwhile; endif;
}