如何编辑循环以便只显示包含类别的帖子?我希望能够在不具有类别的页面上隐藏帖子。
答案 0 :(得分:1)
以下是一些可以帮助的资源:
https://developer.wordpress.org/reference/functions/query_posts/
https://codex.wordpress.org/Function_Reference/WP_Query#Parameters
修改强>
由于所有帖子在创建时都会收到一个类别,无论是uncategorized
还是您指定的类别,您都可以通过以下方式获得仅设置类别的帖子:
$args = array(
'cat' => '-1' //ID of your `uncategorized` category
);
$query = new WP_Query($args);
print_r($query);
您实际上是在过滤掉具有uncategorized
类别的帖子并完成其余内容。
编辑2
可能发生的另一件事是,如果您在while
语句后执行查询。当我在你写下你的评论时,我想到了这一点:
<?php while(have_posts()) : the_post(); ?>
<?php if (has_category()) { get_template_part("post", "archive-view"); } ?>
<?php endwhile; ?>
我之前发布的代码应该放在while
语句之前。像这样:
<?php
$args = array(
'cat' => '-1' //ID of your `uncategorized` category
);
$query = new WP_Query($args);
while(have_posts()) : the_post(); ?>
...
<?php endwhile; ?>
答案 1 :(得分:-1)
$term_ids = get_terms(
'TAXONOMY_NAME',
[ // Array of arguments, see get_terms()
'fields' => 'ids' // Get only term ids to make query lean
]
);
if ( $term_ids // Check if we have terms
&& !is_wp_error( $term_ids ) // Check for no WP_Error object
) {
$args = [
'tax_query' => [
[
'taxonomy' => 'TAXONOMY_NAME',
'terms' => $term_ids,
]
],
];
$q = new WP_Query( $args );
// Run your loop as needed. Remeber wp_reset_postdata() after the query
}
有关更多信息,请查看以下链接