【问题标题】:Nesting Shortcodes in Wordpress [duplicate]在 Wordpress 中嵌套简码 [重复]
【发布时间】:2017-05-11 15:21:20
【问题描述】:

首先,我一直在寻找答案,但我发现的所有内容都让我参考了 Codex,很简单,它也可以用“希腊语”写成。我刚刚开始使用 Wordpress,而且我对 PHP 一点也不了解,所以 Codex 只是一堆 gobblity-gook。我认为这应该很简单,也许它无法完成,但是我们开始......

我有一个简码(我通过谷歌搜索找到),如果您没有登录,它会隐藏我的 Wordpress 网站上的内容。[会员]必须登录才能看到。 [/member] 效果很好。

现在,我使用 Participant Database 插件添加了一个数据库,并希望使用他们的简码显示该数据库中的人员列表... {pdb_list] 这也可以正常工作,但是....

我需要做的是“[member] [pdb_list] [/member]”。不是每个访问该网站的人都需要登录,但要查看他们必须登录的列表。请帮助,但不要只是说阅读 codex(对我来说是希腊语),或者说使用“do_shortcode()”,以我的经验,这个答案也难以理解。

这似乎应该很简单,但我想不通... T.I.A.!

【问题讨论】:

  • Stack Overflow 上的搜索功能是您的朋友。按标签搜索并按投票排序结果:stackoverflow.com/…
  • 我看到了这个问题,但我不明白。正如我所说,来自 Codex 的示例对我来说就像“希腊语”。
  • 好吧,您必须尝试代码并亲自查看...使用do_shortcode($content) 解决方案...如此处所述,在 Codex 和副本上问题...

标签: wordpress nested shortcode


【解决方案1】:

Codex 说:

简码解析器正确处理嵌套的简码宏,前提是它们的处理函数通过递归调用 do_shortcode() 来支持它:

在简单的英语中,如果你想使用嵌套的简码,你必须将它们翻译成外部简码。

function member_shortcode($atts, $content = "") {

    if ($content) {

        $content = do_shortcode("[{$content}]");

    }

【讨论】:

  • 我已经阅读了 Codex,但我不明白。 “递归”是什么意思。这就像一门外语(对我来说)。我不写代码。我如何在上面的“纯英文”中“插入”我的两个简码??? [pdb_list] 需要“包装”在 [member] ... [/member]
  • 递归意味着检查短代码中的短代码。您必须编写一些代码。找到成员简码并确保它检查定义中的属性和内容,例如($atts, $content = ""),然后在我的答案中添加三行 if 语句。
  • 好的,我有成员函数.. function member_check_shortcode( $atts, $content = null ) { if ( is_user_logged_in() && !is_null( $content ) && !is_feed() ) return $内容;返回 '​​';但是我把你上面写的代码放在哪里呢?
  • 在你的return $content;之前
  • 谢谢!我承认,我仍然无法“阅读”这段代码并理解它,现在还有另一个问题(当成员未登录时,嵌套的短代码调用显示为 html 文本),但我可以忍受,直到我能学会更多关于 WordPress、简码和 PHP 的信息。万分感谢你,WDMBG!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
相关资源
最近更新 更多