函数将内容打印到屏幕上,而不是返回内容。因此,当在可过滤变量中构建页面内容时调用短代码时,会调用函数并在呈现其余页面内容之前打印内容。
如果像这样修改函数,应该会得到更好的结果:
<?php function SkypeChat() {
return <<<HTML
<script type="text/javascript" src="http://www.skypeassets.com/i/scom/js/skype-uri.js"></script>
<div id="SkypeButton_Call_merchando.group_1">
<script type="text/javascript">
Skype.ui({
"name": "chat",
"element": "SkypeButton_Call_merchando.group_1",
"participants": ["merchando.group"],
"imageSize": 32
});
</script>
</div>
HTML;
}
add_shortcode( \'SkypeButton\', \'SkypeChat\' ); ?>
更好的方法是只使用您的短代码包含div,并使用wp\\u enqueue\\u scripts操作挂钩将JavaScript排队。