让你的代码变得简单,并且能够“在任何地方使用”是非常主观的。由于您正在编写代码,并且没有指定代码的最终使用位置,因此最简单的方法是将其作为函数:function my_function() { ... }
然而,为了使其成为一个短代码,在codex 当我想制作一个短代码时,我总是使用它:
function bartag_func( $atts, $content = null ) {
$a = shortcode_atts( array(
\'foo\' => \'something\',
\'bar\' => \'something else\',
), $atts );
//Run whatever code I want to here...
return $my_result;
}
add_shortcode( \'bartag\', \'bartag_func\' ); //[bartag foo="foo-value"]
如果您不想传入任何变量,那么可以删除用于提取变量的第一个代码块。
对于短代码,您必须return
您的结果。任何直接被回应/打印的内容最终都会出现在页面上奇怪的地方,而不是你想要的地方。如果要使用的函数想要直接回显,请使用输出缓冲区捕获数据并将其放入字符串:
ob_start();
//My Code
$result = ob_get_clean();
短代码函数应该能够根据您想要做的事情来添加和应用过滤器,但值得注意的是,如果您使用的是WP使用的短代码/过滤器组合(如在放置在帖子内容中的短代码函数中过滤帖子内容),您可能会陷入过滤循环