Wordpress加载Facebook SDK的错误语言

时间:2017-01-09 15:09:39

标签: wordpress facebook facebook-javascript-sdk

我们正尝试使用帖子的网址将Facebook帖子嵌入到Wordpress中。这种方法很好,除了语言错误。它出现在阿拉伯语中,而不是出现在英语中的语言。

我相信我已经将问题追溯到由Wordpress加载的Facebook SDK。

这是Facebook说要添加到页面的代码

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&amp;version=v2.5";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

这是Wordpress正在加载的

<div id="fb-root"></div>
<p><script>(function(d, s, id) {  
    var js, fjs = d.getElementsByTagName(s) [0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/ar_AR/sdk.js#xfbml=1&version=v2.3";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

我认为问题是&#34; ar_AR&#34;在Facebook连接网址而不是&#34; en_US&#34;。但是,我无法弄清楚控制的方式和位置。

我检查了Wordpress中的语言选择,并选择了英语。我尝试了一个没有插件的新的Wordpress 4.7安装,问题仍然存在。

以下是网站上以阿拉伯​​语显示的示例帖子。这也是我们插入到Wordpress中以创建嵌入式帖子的内容。

https://www.facebook.com/farahdhukai/videos/1217650958285047/

这是用阿拉伯语而不是英语出现的地方

http://mvs.dev.clickharder.net/facebook-sdk-test/

顶级嵌入只使用Wordpress嵌入功能,只需添加视频的网址即可。底部嵌入是使用Facebook iframe嵌入方法进行测试。

我还没弄明白如何在Wordpress中禁用Facebook SDK,以便我自己插入或者如何将其从ar_AR更改为en_US。

我搜索过每一个对#34; Facebook&#34;在一个新鲜的Wordpress安装和空手而归。我无法找到&#34; ar_AR&#34;在Wordpress中与此问题相关。

我们正试图避免使用嵌入帖子的iframe方法。这对我们的情况并不理想,因此对我们来说不是解决方案。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

@CBroe提供了与之相同的解决方案。我添加了以下代码来替换引用。

add_filter( 'the_content', 'facebook_sdk_replace' );
function facebook_sdk_replace( $content ) {
    if ( is_single() ) {
        $content = str_replace("/ar_AR/", "/en_US/", $content);
    }
    return $content;
}

答案 1 :(得分:0)

语言错误的原因是您的Web服务器的位置。

Facebook显然会根据您服务器的IP地址来检测语言。

这是解决方法,可以避免性能开销:

function oembed_result($content, $url, $args) {
    return str_replace("https://connect.facebook.net/ar_AR/", "https://connect.facebook.net/en_US/", $content);
}
add_filter('oembed_result','oembed_result', 10, 3);

不要忘记在那之后从数据库中删除缓存:

DELETE FROM wp_postmeta WHERE meta_key LIKE "_oembed%"