有两种方法可以做到这一点。第一种方法是创建一个输出按钮的函数,然后将其包含在模板中。第二种方法是在the_content
或the_excerpt
或者两者都可以,具体取决于按钮的显示位置。
在这两种情况下,您需要做的第一件事是将脚本调用与呈现按钮的代码分离,然后通过挂接wp_footer
或手动将代码放入footer.php
.
此示例使用Facebook html5 xfbml javascript sdk和Google async方法以及Linkedin共享按钮和Twitter推特按钮。
将javascript添加到页脚
add_action( \'wp_footer\', \'prefix_social_media_scripts\' );
function prefix_social_media_scripts() {
echo \'<script src="http://platform.twitter.com/widgets.js"></script>\';
echo \'<script src="http://platform.linkedin.com/in.js" type="text/javascript"></script>\';
echo \'<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/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, \\\'script\\\', \\\'facebook-jssdk\\\'));
(function() {
var po = document.createElement(\\\'script\\\'); po.type = \\\'text/javascript\\\'; po.async = true;
po.src = \\\'https://apis.google.com/js/plusone.js\\\';
var s = document.getElementsByTagName(\\\'script\\\')[0]; s.parentNode.insertBefore(po, s);
})();
</script>\';
}
渲染按钮的函数
function prefix_social_media() {
$post_url = get_permalink();
$title = get_the_title ();
echo \'<ul id="share-buttons">\';
echo \'<li class="facebook"><div class="fb-like" data-href="\' . $post_url . \'" data-send="false" data-layout="button_count" data-width="66" data-show-faces="false"></div></li>\';
echo \'<li class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-url="\' . $post_url . \'" data-count="none">Tweet</a></li>\';
echo \'<li class="google"><div class="g-plusone" data-size="medium" data-href="\'.$post_url.\'"></div></li>\';
echo \'<li class="linkedin"><script type="IN/Share" data-url="\'. $post_url .\'" data-counter="right"></script></li>\';
echo \'</ul>\';
在之前添加要显示的过滤器
the_excerpt
.
function prefix_social_media_filters( $content ) {
$buttons = prefix_social_media();
$content = $buttons . $content;
return $content;
}
add_filter( \'the_excerpt\', \'prefix_social_media_filters\' );
将函数添加到模板中
if (have_posts()) : while (have_posts()) : the_post();
prefix_social_media();
// rest of your loop