带开关的WordPress快捷码

时间:2020-09-15 作者:Ygdrazil

我正在开发一个插件,并在其中添加了一些信息。这是由[信息]调用的。我希望能够添加一个“extended”参数作为开关,这样,如果我设置此[信息]将显示短信息,[信息扩展]将显示扩展信息,如

   function info($atts){
      extract(shortcode_atts(array(
            \'extended\' => \'\',
            ), $atts));
     ob_start();
        echo \'info\';
        if (isset($extended)){
            echo \'More info\';
            }
      return ob_get_clean();
    }
但找不到如何做到这一点。我只找到必须向参数添加值的选项,并像[信息扩展=“完整”这样进行检查然后检查参数的值。有人有什么建议吗?

1 个回复
SO网友:Antti Koskinen

是的,您可以传递带值的短码参数。它们只是出现在$atts 使用数字键。你可以看到这个var_dump($atts). 检查其存在的一个选项是使用in_array().

function info( $atts ) {
    // check if extended is passed in $atts with or without value
    $extended = isset( $atts[\'extended\'] ) ? $atts[\'extended\'] : in_array( \'extended\', $atts );

    if ( $extended ) {
        // do something
    }

    // more code
}

相关推荐