WPML
状态
未解决

问题概述

WordPress 原生函数 has_category 无法用于翻译后的文章。

示例如下:

  1. 我们有一个分类,其英语别名为“test”,法语翻译为“test-fr”。
  2. 该分类被分配给文章。
  3. 当您在主题的 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' )

此过滤器会根据原始分类的名称获取已翻译的分类,并检查该已翻译的分类是否已分配给文章。

所有已知问题 →