我使用Qtranlate (https://wordpress.org/plugins/qtranslate-xp/),我也使用Yoast的Wordpress seo,但是元标题和描述字段不能被翻译。有人会修复这个问题,或者知道一个插件可以解决这个问题吗?
发布于 2014-10-31 01:08:29
这个问题是存在的,因为qTranslate不是加号。有一个修复程序,来自Yoast:http://kb.yoast.com/article/52-wordpress-seo-qtranslate
function qtranslate_filter( $text ) {
return __( $text );
}
add_filter( 'wpseo_title', 'qtranslate_filter', 10, 1 );
add_filter( 'wpseo_metadesc', 'qtranslate_filter', 10, 1 );
add_filter( 'wpseo_metakey', 'qtranslate_filter', 10, 1 );
add_filter( 'wpseo_opengraph_title', 'qtranslate_filter', 10, 1 );这对我来说还不够..。我跟踪了$text,发现语言语法被破坏了。不是这样的
<!--:de-->, it was <!-:de->.因此,我在qtranslate_filter($.)中直接添加了一个替换项。
function qtranslate_filter( $text ) {
$fixedOpenTag = str_replace("<!-:", "<!--:", $text);
$fixedCloseTag = str_replace("->", "-->", $fixedOpenTag);
return __($fixedCloseTag);
}这适用于前端输出。我查了一下约斯特的源代码,但现在还没修好.
发布于 2022-03-17 14:36:56
我修改过滤器并直接使用数据库中的字符串。
function qtranslate_filter_yoast_title($text)
{
$post_id = get_the_ID();
$text = get_metadata('post', $post_id, "_yoast_wpseo_title", true);
return __($text);
}
function qtranslate_filter_yoast_desc($text)
{
$post_id = get_the_ID();
$text = get_metadata('post', $post_id, "_yoast_wpseo_metadesc", true);
return __($text);
}
add_filter('wpseo_title', 'qtranslate_filter_yoast_title', 10, 1);
add_filter('wpseo_metadesc', 'qtranslate_filter_yoast_desc', 10, 1);
add_filter('wpseo_opengraph_desc', 'qtranslate_yoast_filter_desc', 10, 1);
add_filter('wpseo_opengraph_title', 'qtranslate_filter_yoast_title', 10, 1);https://stackoverflow.com/questions/26089212
复制相似问题