找到一个过程来检查帖子中是否存在短代码(我的尝试有误)

我的目的是根据某些短代码(及其参数)的存在来设置主题的一些处理选项。
详细目的, 需要信息的原因
这样, 用户可以在” 页面” 或” 文章” 中定义主题选项(之所以这样, 是因为网站需要将某些页面和文章作为文本显示在单列中, 例如书本和侧边栏, 而其他则需要使用多媒体在带有多个面板的PC上需要全角)。
失败的原因:执行了简码, 但是我无法回到原来的主题, 也无法获取执行主题的参数。
我已经实现的结构

  • 短代码被定义为插件的类
  • shortcode函数将一些值设置为插件类的对象
  • 主题调用的对象的几个公共功能返回状态和存储在对象中的参数
这个过程出了点问题
发生错误是因为运行” page.php” 时, 所包含的函数会向对象询问是否已运行shortcode函数, 因此会回答” 未运行” 。
这可以在(获取帖子内容)后的某行验证显示的帖子已处理了短代码。
进一步地, 当执行” 侧边栏” 时, 相同的问题被回答为” 真” 。
也许
可能是我的概念是错误的, 因为仅当通过” the_content()” WP函数输出帖子的内容时才进行帖子的处理(尤其是短代码)(后来到page.php中为时已晚)?
如果是这样, 那么在进行任何处理之前, 我必须分析自己的内容。在Wordpress Codex中似乎什么也没有告诉(或找不到)。

你有什么主意吗。我有一些解决方案, 但是如果我想象的原因是错误的, 那么我将产生一些过于复杂的东西。
最好的祝福
颤抖的
#1感谢你的信息。自从我发布此主题以来的很短时间内, 我就开发了解决方案。
我确认问题出在写$ pt = $ post-> get_content(); 时。
你将获得未经任何简码处理的原始内容。
【找到一个过程来检查帖子中是否存在短代码(我的尝试有误)】只有当你写入主题-?php the_content()?-时, 才会处理短代码并缓冲结果。
然后, 我读取$ pt并搜索所需的简码。如果找到它, 我将进行分析, 获取参数并执行。
但这并没有结束, 因为你需要清除短代码或具有相同类型目的的任何其他代码, 但不要将其视为代码的分支(最好不要更改post_content)。这是由我的过程完成的, 由简码调用的函数返回一个空字符串。
这是为了向模板提供有关如何处理当前内容的指示(通过页面, 文章或其他帖子列表的html内容)。
但是, 由于任何内容都是由短代码引入的, 因此通常无法在任何内容上使用, 并且你通常无法在第二级给出说明。我之所以说” 一般” , 是因为你可以开发短代码, 这些短代码将使用在发送ob之前启动的回调函数。然后, 你可以分析ob并进行一些更改。这是理论上不可能的第二级。管理编码并不容易, 但是这是我用来为WP的任何输出生成目录(表头或其他用户标签)的方式。
最好的祝福
颤抖的

    推荐阅读