在 WordPress 后端添加或编辑帖子时,我无法为帖子添加(分配)标签。当我单击“从最常用的标签中选择”按钮时,它显示“未找到标签”。但是其他帖子中已经添加了十几个标签。使用文本框添加标签也不起作用。
仅在我更新 WPML 插件后才会出现此问题。在更新插件之前,它工作正常。我搜索了网络,但仍然无法弄清楚如何解决这个问题。
我需要更改或配置什么才能使添加标签功能与 WPML 插件一起再次工作?
我现在已经解决了这个问题。我使用的 WPML 插件版本默认似乎有这个问题。
为了解决这个问题,我在 WPML 插件(我开发的插件)之外添加了以下代码。
// Code to fix 'No tags found' issue in admin backend
add_filter('icl_current_language', 'icl_current_language_preview_hack_filter_func',200);
function icl_current_language_preview_hack_filter_func($lang){
if(isset($_GET['lang'])){
$lang = esc_html($_GET['lang']);
}
elseif(isset($_COOKIE['_icl_current_admin_language']))
{
$lang=$_COOKIE['_icl_current_admin_language'];
}
else
{
$lang="en";
}
return $lang;
}
注意上面的代码可以添加到任何插件中。
解释当我们尝试为帖子添加标签时,WPML 插件会尝试获取当前所选语言的标签。默认情况下,对于每个操作,WPML 都会将当前语言存储在 Cookie 中,并在需要时检索它。但在这种情况下,我不知道为什么 WPML 从 $_GET 而不是 Cookie 获取当前语言,而 $_GET 什么也不返回。
因此,如果当前语言在 $_GET 中不可用,我通过使用 Cookie 获取当前语言来调整该代码。
希望这个答案对一些遇到这个问题的人有所帮助。