我们正尝试使用帖子的网址将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&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方法。这对我们的情况并不理想,因此对我们来说不是解决方案。
非常感谢任何帮助。
答案 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%"