个性化阅读
专注于IT技术分析

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

我的目的是根据某些短代码(及其参数)的存在来设置主题的一些处理选项。

详细目的, 需要信息的原因

这样, 用户可以在”页面”或”文章”中定义主题选项(之所以这样, 是因为网站需要将某些页面和文章作为文本显示在单列中, 例如书本和侧边栏, 而其他则需要使用多媒体在带有多个面板的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的任何输出生成目录(表头或其他用户标签)的方式。

最好的祝福

颤抖的

赞(0)
未经允许不得转载:srcmini » 找到一个过程来检查帖子中是否存在短代码:我的尝试有误

评论 抢沙发

评论前必须登录!