这个do_shortcode()
函数采用两个参数,string $content, bool $ignore_html = false
. 如果您可以在内容字符串传递给函数之前获取它,那么您可以strpos()
或者某种要检查的regex,shortocode字符串中存在哪些参数。但除此之外,我认为没有办法进行你在外部要求的那种有条件的检查do_shortcode()
.
做同样事情的一种更简单、更明确的方法是在短代码回调中包含条件检查。然后,您可以使用默认值(例如true/false)来呈现图标,并将其与传递给快捷码的参数相匹配。
例如,您的短代码是这样使用的,
[your\\u shortcode icons=“true”]
您的回拨结果如下所示,
add_shortcode( \'your_shortcode\', \'your_shortcode_callback\' )
function your_shortcode_callback( $atts ) {
$default = array(
\'icons\' => false,
);
$atts = shortcode_atts( $default, $atts, \'your_shortcode\' );
if ( $atts[\'icons\'] ) {
// return markup with icons
} else {
// return markup without icons
}
}