函数的编写方式与您尝试使用它的方式之间没有关系。
第一个问题是,您的函数返回一个值,而不是回显它。因此,如果您想输出需要使用的值echo
:
echo social_sharing_buttons(\'post\');
但是
\'post\'
在这里没有意义。您的代码将只输出以下内容:
<div class="post_cont_info entry-meta">
<div class="social">
<a class="link facebook" href="(etc. etc.)" target="_blank">Facebook</a>
</div>
post
</div>
请注意
post
最后在那里闲逛。
这是因为social_sharing_buttons()
函数写入过滤器the_content()
这样您的自定义链接就会显示在帖子内容的顶部。这意味着它接受帖子的全部内容作为论据&mdash;不是职位类型&mdash;然后将值返回给WordPress,由the_content()
作用因此,您不能使用它在任意模板中输出共享链接。
如果要编写函数,使其仅输出此链接,则需要将其重写为如下所示:
function social_sharing_buttons( $after = \'\' ) {
$variable = \'\';
if ( ! is_page() ) {
$url = urlencode( get_permalink() );
$facebookURL = \'https://www.facebook.com/sharer/sharer.php?u=\' . $url;
$variable .= \'<div class="social">\';;
$variable .= \'<a class="link facebook" href="\'.$facebookURL.\'" target="_blank">Facebook</a>\';
$variable .= \'</div>\';
}
return $variable . $after;
}
请注意以下更改:
在$content
参数已被重命名为泛型,即使它未用作过滤器,也有意义,并已被赋予默认值,以便您可以在不传递参数的情况下回显它
global $post
已被删除,因为它没有任何用途$Title
已删除,因为共享者。php不支持URL以外的任何其他参数,因此它没有任何用途$variable
已删除,以避免在else
条件现在可以这样输出:
echo social_sharing_buttons();
但它也可以作为
the_content()
:
add_filter( \'the_content\', \'social_sharing_buttons\' );