代码之家  ›  专栏  ›  技术社区  ›  Toniq

不带值和特殊字符的短代码属性

  •  0
  • Toniq  · 技术社区  · 7 年前
    1. Wordpress快捷代码可以有没有这样的值的属性吗?

      [foo some_att]
      

      [foo some_att=""]
      
    2. 我能有这样的短代码值吗(用大括号)?

      [foo path="{'quality': '720p', 'mp4': 'PATH_TO_MP4_VIDEO'}"]
      
    1 回复  |  直到 7 年前
        1
  •  1
  •   esqew    7 年前
    1. 你当然可以! RichJenks 有一篇关于实现此功能的简短但内容丰富的文章,它可以定义一个新函数,该函数可以告诉您在 $atts 数组:

      function is_flag( $flag, $atts ) {
          foreach ( $atts as $key => $value )
              if ( $value === $flag && is_int( $key ) ) return true;
          return false;
      }
      

      定义此函数后,可以引用 is_flag() 在您的shortcode函数中,以判断该标志是否已作为shortcode调用的一部分提供:

      if is_flag( 'some_att', $atts )
          // flag is present
      else
          // flag is not present
      
    2. 不幸的是,您提供的示例不能作为Wordpress shortcode解析器的参数值。这位官员称 Wordpress documentation on the Shortcode API :

      属性值不得包含以下字符:


      • 引语:“'

      因为您的示例使用了单引号字符( ' ),它不受shortcode解析引擎的正式支持。