【发布时间】:2019-11-04 16:59:30
【问题描述】:
正如标题所说,我正在尝试编写一个自定义 WordPress 过滤器,它限制标签页面的创建,以便仅当标签具有超过 10 个相关帖子时才创建标签页面。这是因为我们有很多标签,相关帖子少于 10 个,这会产生很多噪音。
我已经快 5 年没有使用 WordPress 了,所以我有点生疏了。
这是我正在尝试的方法,但效果不太好:
<?php
function limit_taxonomies_by_count( $args, $taxonomy, $object_type ) {
$terms = get_terms('post_tag');
foreach($term in $terms) {
if ($term->count < 10) {
$args = array(
'public' => false
)
}
}
return $args
}
add_filter('register_taxonomy_args', 'limit_taxonomies_by_count' );
?>
请让我知道我错过了什么!
【问题讨论】:
-
您在
return $args之后缺少分号:P 除此之外,当您说“标签页”时,您的意思是标签存档(例如tag.php)?还是别的什么? -
@cabrerahector 不错的收获。谢谢你。我的意思是这个模板:
tag-{slug}.php -
好的,这是标签存档。然而,这对我来说听起来有点矛盾/不合逻辑:“......限制标签页面的创建,以便标签页面只有在标签有超过 10 个相关帖子时才会创建。”如果您正在创建一个标签,它没有任何关联的帖子,因为它还不存在。
-
@cabrerahector 好吧,我们有 200 多个标签,但只有约 100 个标签有 > 10 个帖子。其中相当一部分关联了 2-3 个帖子,我们不想为这些帖子创建页面。这更有意义吗?
-
我想到了一个不同的方法,它可能不那么激进:hiding 标签页面少于 10 个帖子怎么样?您可以使用
template_redirect挂钩来检查标签存档页面何时加载,然后获取其帖子计数并重定向到其他地方(主页?另一个标签?)如果它的帖子少于 10 个。
标签: php wordpress taxonomy add-filter