Help With Creating Shortcode

时间:2016-07-08 作者:Taylor Foster

我正在寻找一种方法,在执行短代码时只检查存在的选项,但该选项不需要值。如何只检查一个选项?例如,我尝试了这个方法,我希望下面的代码输出true,但它仍然输出false。

PHP:

function Test($atts) {
 extract(shortcode_atts(array(
  \'row\' => null
 ), $atts));
 $output = \'false\';
 if($row) {
  $output = \'true\';
 }
 return $output;
}
add_shortcode("test", "Test");
所见即所得:

[test row]
将只输出“false”。但如果我说:

[test row="true"]
它将在页面上输出“true”。

再一次,我想检查一下这个选项row 只是在那里,不必给它提供价值。谢谢

1 个回复
SO网友:Tom

如果未提供值,extract()函数似乎会将其设置为false。可能有更好的解决方法,但我使用了如下解决方法

function Test($atts) {
    extract(shortcode_atts(array(
     \'row\' => null
    ), $atts));

    $output = \'false\';
    if( in_array(\'row\', $atts))
        $output = \'true\';

    return $output;
}
add_shortcode("test", "Test");

相关推荐

Execute shortcodes in PHP

我在帖子编辑器中添加了一个地理位置快捷码,可以根据用户的位置显示不同的信息,将其放在帖子页面的内容中,效果非常好。如何在主题的PHP文件中执行此短代码[地理位置][地理位置]?我正在使用免费修改Wordpress主题,我想添加一个新的<span>[geolocation][/geolocation]Information text content</span> 但在主题的内部。php文件,我如何才能做到这一点?如果我直接加上<span>[geolocation][/ge