官方推特小部件在 Wordpress 博客中失败
Official twitter widget fails in Wordpress blog
我开始在免费的 wordpress 平台上写博客,我想将 official twitter widget 添加到我的博客中。
我将以下代码作为文本小部件添加到二十十四主题的博客侧栏中。
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="695529194466504704">Tweets by @Menuka_cs3</a>
<script>
! function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
</script>
但它看起来像这样
当我保存小部件时我能够检测到它丢失了它的 <script>
标签,所以它只显示内容字母。这是我保存小部件时得到的结果
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3">Tweets by @Menuka_cs3</a> !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
请帮忙。谢谢
当 Wordpress 保存内容时,它会过滤内容,因为它考虑的是文本,而不是代码。一种 可能的 解决方案是创建这样的简码:
打开你的 theme/functions.php 文件并将其粘贴到末尾
function twitter_shortcode( $atts) {
$twitter = '<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="695529194466504704">Tweets by @Menuka_cs3</a>
<script>
! function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
</script>';
return $twitter;
}
add_shortcode( 'twitter', 'twitter_shortcode' );
然后,在您的 post 上调用简码:
[twitter]
请注意,此功能完全未经测试,但取自官方 wordpress 页面:
试试这个代码
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="710522346977824769">tweets by @Menuka_cs3</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
我认为您正试图在 WordPress.com 博客的 text widget 中添加代码 javascript。你不能。
Users are not allowed to post JavaScript on WordPress.com blogs.
JavaScript can be used for malicious purposes. As an example,
JavaScript has taken sites such as MySpace.com and LiveJournal offline
in the past. The security of all WordPress.com blogs is a top priority
for us, and until we can guarantee scripting languages will not be
harmful, they will not be permitted.
JavaScript from trusted partners, such as YouTube and Google Video, is
converted into a WordPress shortcode when a post is saved.
https://en.support.wordpress.com/code/#javascript
但是如果你在 WordPress.com VIP, and need to embed your Twitter timeline, you could follow this post How To Embed a Twitter Timeline Widget.
我开始在免费的 wordpress 平台上写博客,我想将 official twitter widget 添加到我的博客中。
我将以下代码作为文本小部件添加到二十十四主题的博客侧栏中。
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="695529194466504704">Tweets by @Menuka_cs3</a>
<script>
! function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
</script>
但它看起来像这样
当我保存小部件时我能够检测到它丢失了它的 <script>
标签,所以它只显示内容字母。这是我保存小部件时得到的结果
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3">Tweets by @Menuka_cs3</a> !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
请帮忙。谢谢
当 Wordpress 保存内容时,它会过滤内容,因为它考虑的是文本,而不是代码。一种 可能的 解决方案是创建这样的简码:
打开你的 theme/functions.php 文件并将其粘贴到末尾
function twitter_shortcode( $atts) {
$twitter = '<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="695529194466504704">Tweets by @Menuka_cs3</a>
<script>
! function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
</script>';
return $twitter;
}
add_shortcode( 'twitter', 'twitter_shortcode' );
然后,在您的 post 上调用简码:
[twitter]
请注意,此功能完全未经测试,但取自官方 wordpress 页面:
试试这个代码
<a class="twitter-timeline" href="https://twitter.com/Menuka_cs3" data-widget-id="710522346977824769">tweets by @Menuka_cs3</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
我认为您正试图在 WordPress.com 博客的 text widget 中添加代码 javascript。你不能。
Users are not allowed to post JavaScript on WordPress.com blogs. JavaScript can be used for malicious purposes. As an example, JavaScript has taken sites such as MySpace.com and LiveJournal offline in the past. The security of all WordPress.com blogs is a top priority for us, and until we can guarantee scripting languages will not be harmful, they will not be permitted.
JavaScript from trusted partners, such as YouTube and Google Video, is converted into a WordPress shortcode when a post is saved.
https://en.support.wordpress.com/code/#javascript
但是如果你在 WordPress.com VIP, and need to embed your Twitter timeline, you could follow this post How To Embed a Twitter Timeline Widget.