- 状态
- 未解决
问题概述
WordPress 原生函数 has_category 无法用于翻译后的文章。
示例如下:
- 我们有一个分类,其英语别名为“test”,法语翻译为“test-fr”。
- 该分类被分配给文章。
- 当您在主题的 single.php 文件的循环中调用 has_category(”test”) 时,它对于默认语言返回 true,但对于翻译返回 false。
临时解决方法
在主题的functions.php文件中定义一个新的过滤器:
function wp_has_category ($category) {
$category = get_term_by('name', $category, 'category');
return has_category($category);
}
add_filter('wp_has_category', 'wp_has_category', 10, 1);使用此新过滤器替换has_category函数:
apply_filters( 'wp_has_category', 'test' )
此过滤器会根据原始分类的名称获取已翻译的分类,并检查该已翻译的分类是否已分配给文章。