在DO_SHORT代码中插入PHP

时间:2014-07-04 作者:user3699892

我正在为我的wordpress站点的自定义模板中的手风琴元素使用现有的短代码。基本上,我需要在这个短代码中插入PHP数组,如下所示:

<php do_shortcode(\'[vc_accordion]\';>

PHP arrays here

<php do_shortcode(\'[/vc_accordion]\';>
有人知道是否有解决方案吗?

3 个回复
SO网友:sMyles

这是我将使用的代码:

$open_shortcode = \'[vc_accordion]\';
$shortcode_data = \'\';
$close_shortcode = \'[/vc_accordion]\';

$myarray = array(
    \'tabs\' => 
        array(
            \'title\' => \'Section 1\',
            \'content\' => \'Any text here\'
        ),
        array(
            \'title\' => \'Section 2\',
            \'content\' => \'Any text here\'
        )
);

foreach( $myarray[\'tabs\'] as $tab ){
    $shortcode_data .= \'[vc_accordion_tab title="\' . $tab[\'title\'] . \'"]\' . $tab[\'content\'] . \'[/vc_accordion_tab]\';
}

echo do_shortcode($open_shortcode . $shortcode_data . $close_shortcode);
假设您想要类似的东西:

[vc_accordion]
    [vc_accordion_tab title="Section 1"]Any text here[/vc_accordion_tab]
    [vc_accordion_tab title="Section 2"]Any text here[/vc_accordion_tab]
[/vc_accordion]
你提供了很少的细节,这对我们帮助不了你,但我相信这应该会起到作用。

SO网友:Christoph Daum

基本上,您可以简单地使用一段短代码,并使用eval().

这可能就是你问题的答案。但我不得不问为什么?你为什么要这样做。

您可以扩展您的短代码并在那里传递变量。解析php非常不安全,因为可能存在安全威胁,这是一种糟糕的做法。通过短代码传递的数组要好得多。

SO网友:HamedPC

这是正确的格式:

<?php echo do_shortcode( $content ) ?>
示例-->您的短代码:[wp-like-locker]现在插入:

<?php echo do_shortcode( [wp-like-locker] ) ?>

http://codex.wordpress.org/Function_Reference/do_shortcode

结束

相关推荐

Gist shortcode is not working

我刚安装了一个全新的Wordpress用于测试,因为我打算刷新我当前的网站。我的一个要求是能够嵌入Gist中的代码。在Wordpress文档之后,较新版本附带了Gist的特定短代码:Gist Shortcode问题是它根本不起作用。我试着简单地将url粘贴在一行上,或者将其包裹在[要点]标签上,但没有任何效果。url只是在帖子中显示为原始文本。我知道有些插件提供了相同的功能,但我真的希望使用Wordpress的内置功能。我的网站已自动托管并安装在Azure网站上,运行PHP 5.4和Wordpress 3