我正在尝试找出如何从我的 WordPress 博客存档页面隐藏特定类别 (id=89)。我希望能够在网站的其他部分使用此类别的特定博客文章,但我不希望它们出现在任何主要存档页面中(作为类别链接或通过存档页面显示帖子本身) 。我的页面上有以下代码,但我不知道在哪里以及添加什么内容来隐藏此 id:
<h3>Categories</h3>
<?php
$categories = get_categories( array(
'hide_empty' => 1,
) );
foreach( $categories as $category ) {
// print_r($category);
$category_link = get_category_link( $category->term_id );
?>
<ul>
<li><a href="<?php echo $category_link; ?>"><?php echo $category->name; ?></a></li>
<?php
}
?>
</ul>
</div>
```
对于类别列表,请像这样修改代码:
<h3>Categories</h3>
<?php
$categories = get_categories(array(
'hide_empty' => 1,
'exclude' => array(89) // Exclude category ID 89
));
foreach($categories as $category) {
$category_link = get_category_link($category->term_id);
?>
<ul>
<li><a href="<?php echo esc_url($category_link); ?>"><?php echo esc_html($category->name); ?></a></li>
</ul>
<?php
}
?>
</div>
要在存档页面中也排除此类别中的帖子,请将此代码添加到主题的functions.php文件中
function exclude_category_from_archive($query) {
if (!is_admin() && $query->is_main_query()) {
if ($query->is_archive() || $query->is_home()) {
$query->set('cat', '-89'); // The minus sign excludes the
category
}
}
}
add_action('pre_get_posts', 'exclude_category_from_archive');
如果需要排除多个类别,可以这样修改数组:
'exclude' => array(89, 90, 91) // For the category list
$query->set('cat', '-89,-90,-91') // For the archive pages