如何检查这是否是POST中给定短码的第n个实例

时间:2012-07-27 作者:supertrue

假设我有一个名为[item], 我在一个特定的帖子中使用了20次。

是否可以从shortcode handler函数中了解给定[item] 是比如,这是否是第一次[item] 是在邮局,还是在16号?

我知道我可以通过手动添加属性来实现相同的结果,例如[item order="1"][item order="16"], 但我希望在添加和重新排列内容时尽可能地简化操作。在编辑过程中,项目经常会被添加、删除和重新排列,而作者和编辑在每次更改时都会重新编号,这将是一件乏味且容易出错的事情。

有什么好办法吗?

它需要全局变量吗?那很糟糕吗?

1 个回复
最合适的回答,由SO网友:Elio 整理而成

如果您使用的是类,那么

class MyShortcode {

static $instance = 0;

    function __construct($args = array()) {
      add_action( \'init\', array(&$this, \'init\') );
    }

    function init() {
      add_shortcode(\'myshortcode\', array(&$this, \'shortcode\'));
    }

    static function shortcode($atts) {
      //this is the code of your shortcode

      // you can increment your counter
      self::$instance++;

    }

}

结束

相关推荐

在修改[Caption]时,Add_Filter()和Add_ShortCode()有什么固有的区别吗?

上下文是在媒体中找到的[标题]快捷码。php,其中包含img_caption_shortcodeimg\\u caption\\u快捷码还包括以下几行: $output = apply_filters(\'img_caption_shortcode\', \'\', $attr, $content); if ( $output != \'\' ) return $output; 我试图操纵标题短代码的输出,我突然想到我可以过滤函数,或者我可以添加\\u短代码来替换它-有什么区