使用时the_content()
, WordPress将运行多个过滤器来处理来自编辑器的文本。这些过滤器在将内容发送到浏览器之前对其进行处理。do_shortcode
是处理短代码的筛选器。
从…起/wp-includes/default-filters.php
:
// Shortcodes
add_filter( \'the_content\', \'do_shortcode\', 11 ); // AFTER wpautop()
do_shortcode()
用于搜索短代码的内容,并通过其挂钩过滤短代码。
您可以应用do_shortcode
筛选到任何字符串。例如,如果您有一个带有文本区域的元框,并且希望允许用户在文本区域中输入短代码,则可以将do_shortcode
过滤以处理该问题。
A shortcode example:
[my-shortcode param1=something param2=value]Text...[/my-shortcode]
当WordPress在内容中找到此短代码时,它将运行与短代码标记关联的功能
my-shortcode
.
/**
* An example shortcode.
*
* @param array $atts
* @param string $content
* @param string $tag Shortcode tag
* @return string
*/
add_shortcode( \'my-shortcode\', \'wpse_example_shortcode\' );
function wpse_example_shortcode( $atts, $content = \'\', $tag ) {
$a = shortcode_atts( [
\'param1\' => false,
\'param2\' => false,
], $atts );
// code...
return $content . \'!!!\';
}
在这种情况下,WordPress将运行该函数
wpse_example_shortcode()
通过
$atts
(参数及其值,例如param1、param2),
$content
(
文本…),以及
$tag
(使用的快捷码标记,
my-shortcode
).
有效的短码(包括它们的参数和内容)将替换为它们关联的回调函数的输出。将像在后端输入一样输出无效的短代码。