Qtranslate加上Yoast对Wordpress SEO的支持



Im使用Qtranlate plus(https://wordpress.org/plugins/qtranslate-xp/)我也使用Yoast的Wordpress seo,但元标题和描述字段无法翻译。有人对此进行了修复,或者知道修复该问题的插件吗?

由于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);
}

这适用于前端输出。我查看了yoast的源代码,但现在还没有修复。。。

我修改过滤器并直接使用数据库中的字符串

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);

相关内容

  • 没有找到相关文章

最新更新