条件显示侧边栏某个小工具
· 阅读需 2 分钟
当然可以实现条件显示。我们可以在小工具的 widget() 方法中添加条件判断,以决定是否显示小工具。这里是如何修改小工具代码来实现这一功能:
class Recent_Category_Posts_Widget extends WP_Widget {
// 构造函数保持不变
public function widget($args, $instance) {
// 检查当前页面是否属于 "dreamcar news" 分类
$current_category = get_queried_object();
if ($current_category instanceof WP_Term && $current_category->slug === 'dreamcar-news') {
return; // 如果是 "dreamcar news" 分类,直接返回,不显示小工具
}
// 如果不是 "dreamcar news" 分类,继续显示小工具
echo $args['before_widget'];
// 小工具的其余内容保持不变
// ...
echo $args['after_widget'];
}
// form() 和 update() 方法保持不变
}
这段代码的工作原理如下:
- 使用
get_queried_object()获取当前查询的对象(在分类页面中,这将是分类对象)。 - 检查该对象是否是
WP_Term类型(即分类术语),并且其 slug 是否为 'dreamcar-news'。 - 如果条件满足,函数直接返回,不显示小工具。
- 如果条件不满足,继续显示小工具的内容。
请注意,这里假设 "dreamcar news" 分类的 slug 是 'dreamcar-news'。如果实际的 slug 不同,请相应地调整代码。
此外,如果你想在更多的情况下隐藏小工具,你可以扩展这个条件。例如:
public function widget($args, $instance) {
// 获取当前页面的分类
$current_categories = get_the_category();
// 检查是否在任何不想显示小工具的分类中
$excluded_categories = array('dreamcar-news', 'another-category', 'yet-another-category');
foreach ($current_categories as $category) {
if (in_array($category->slug, $excluded_categories)) {
return; // 如果在排除的分类中,不显示小工具
}
}
// 如果不在排除的分类中,显示小工具
echo $args['before_widget'];
// ... 小工具的内容 ...
echo $args['after_widget'];
}
这样,你就可以在 $excluded_categories 数组中列出所有你不想显示这个小工具的分类。
记得在修改后测试一下,确保在各种情况下都能正常工作。如果你需要进一步的帮助或有其他问题,请随时告诉我。