【问题标题】:How to Insert PHP between shortcodes for Tabs [tab]如何在选项卡 [tab] 的简码之间插入 PHP
【发布时间】:2012-07-09 14:45:14
【问题描述】:

我正在寻求有关如何在我的 2 个选项卡之间插入我的 php 的帮助。我正在使用 wordpress 并尝试修改模板,以便我的页面上有 2 个选项卡,其中包含来自其他两个 php 页面的动态内容。

我有 2 个选项卡,但内容没有出现在选项卡中,而是出现在它们上方。我不知道下面的代码做错了什么,但我不知道是什么!

我的代码如下:

<?php

echo do_shortcode('[tabs style="boxed"]
[tab title="First Tab"]' .get_template_part("includes/categories-panel"). '[/tab]
[tab title="Second Tab"]'. get_template_part('includes/home-map-panel')  .'[/tab]
[tab title="Third Tab"] Tab 3 Content here [/tab]
[tab title="Fourth Tab"] Tab 4 Content here [/tab]
[/tabs]');

?>

非常感谢任何帮助!

【问题讨论】:

  • 除非 get_template_part() 返回 [tab]-type 文本,否则就像在 html 表格结构中插入裸文本一样 - 它将在表格之外呈现。
  • 嗨,Marc B,也许这就是正在发生的事情。由于内容呈现在上面选项卡 1 和 2 的选项卡上方,但内容 3 和 4 就像文本一样好。你知道我会怎么做你的建议吗?如何重新输入[tab]-type 文本?欢呼

标签: php wordpress shortcode


【解决方案1】:

get_template_part 只是在当时和那里吐出内容,函数需要一个很大的长字符串。

您必须capture the output 并手动输入。

ob_start();
get_template_part("includes/categories-panel");
$cats = ob_get_clean();
ob_start();
get_template_part('includes/home-map-panel');
$home = ob_get_clean();

echo do_shortcode('[tabs style="boxed"]
[tab title="First Tab"]' .$cats. '[/tab]
[tab title="Second Tab"]'. $home  .'[/tab]
[tab title="Third Tab"] Tab 3 Content here [/tab]
[tab title="Fourth Tab"] Tab 4 Content here [/tab]
[/tabs]');

【讨论】:

  • 这就是我的想法。 OP 中的问题是 wordpress 函数通常回显而不是返回。 +1
  • 嗨 jeremyharris,为快速回复欢呼。我确实尝试过使用上面的代码,但现在一切都在选项卡之外,它们看起来有点乱。加上我的谷歌地图(在主页地图面板中)不再只显示图钉......不确定你是说这是绝对答案还是只是解决方案的一部分?感谢您的帮助
  • 这是一个绝对的答案。它没有考虑到您可能在循环之外调用 get_template_part 的事实,这会导致模板本身中断。不过,这解决了实际问题。循环业务和让您的模板在它之外工作可能是另一个问题。还要检查输出的 HTML 以确保它没有与您的标签 HTML 混淆。
  • 嗨,谢谢...是的,我一定是做错了什么。我可能需要请 Woo 的人看看您的建议/答案,看看他们是否可以帮助我。
  • (不小心按了回车键)我这里有一个代码 sn-p pastie.org/4226161 你能确认我已经正确插入了你的代码吗?欢呼
猜你喜欢
  • 2018-02-21
  • 2017-03-07
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多