加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 是否可以嵌套相同短代码的wordpress短代码?

发布时间:2020-12-13 17:14:07 所属栏目:PHP教程 来源:网络整理
导读:我知道如果使用do_shortcode包装器就可以嵌套短代码,但是,codex声明: “但是,如果使用短代码宏来封装另一个同名的宏,解析器将会失败:” 有没有解决的办法? 例如,如果我有一个短代码来制作一个div,例如: [div]some content in a div[/div] 我希望能够使用
我知道如果使用do_shortcode包装器就可以嵌套短代码,但是,codex声明:

“但是,如果使用短代码宏来封装另一个同名的宏,解析器将会失败:”

有没有解决的办法?

例如,如果我有一个短代码来制作一个div,例如:

[div]some content in a div[/div]

我希望能够使用:

[div]
    [div]a nested div[/div]
[/div]

但是这将使用标准的do_shortcode包装器失败.

我的临时解决方法是复制短名称,其中_parent附加到名称,但我只能嵌套1级深,除非我创建了div_parent1,div_parent2等…

解决方法

如果您正在编写短代码,那么有一个简单的解决方案.您可以编写几个调用相同功能的短代码.我有创建html块的短代码,例如div,并且有几个像div,block1,block2这样的名字.

add_shortcode('div','devondev_block');
add_shortcode('block','devondev_block');
add_shortcode('block2','devondev_block');

它们都调用相同的功能.只要您记得使用不同的短代码,它们就可以嵌套.

WordPress短代码支持只会尝试使用正则表达式进行解析.可以使用正则表达式,有限状态机和堆栈的混合来进行这种解析.这种方法可以处理嵌套,并且速度非常快,特别是在短代码很少的情况下.每次遇到这个我都试着尝试一下.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读