在wordpress中的短代码之间添加php代码

时间:2014-05-01 16:04:02

标签: php wordpress

我正在尝试在wordpress中的短代码之间添加php代码,当中间的内容是文本时,我可以使用以下代码。

<?php echo do_shortcode('[tab]
[tab_item title="ITEM_TITLE"]ADD_CONTENT_HERE[/tab_item]
[tab_item title="ITEM_TITLE"]ADD_CONTENT_HERE[/tab_item]
[tab_item title="ITEM_TITLE"]ADD_CONTENT_HERE[/tab_item]
[/tab]'); 
?>

我想添加以下用于在选项卡中生成内容的php代码。

<?php 
 $args = array('post_type' => 'package','package-category'=>'South Africa',    'posts_per_page'=>6 );
 $loop = new WP_Query( $args );
 while ( $loop->have_posts() ) : $loop->the_post();
?>

<div class="four columns gdl-package-grid2">
 <div class="package-content-wrapper">
             <?php the_post_thumbnail(); ?>
 </div>
</div>

这是可能的,我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

尝试使用String Operators

echo do_shortcode('[tab]
[tab_item title="ITEM_TITLE"]' . $something . '[/tab_item]
[tab_item title="ITEM_TITLE"]' . $something . '[/tab_item]
[tab_item title="ITEM_TITLE"]' . $something . '[/tab_item]
[/tab]'); 

编辑 - 这应该可行,但是你可能会遇到循环周围的[tab] [/ tab]短代码问题。最简单的事情(如果可能的话)就是硬编码循环周围的[tab] [/ tab]输出。希望这会帮助你

<?php
$args = array('post_type' => 'package', 'package-category' => 'South Africa', 'posts_per_page' => 6);
$loop = new WP_Query($args);
while($loop->have_posts()) : $loop->the_post();

    $thumbnail = get_the_post_thumbnail();

    $sc_content = <<<SCC
<div class="four columns gdl-package-grid2">
        <div class="package-content-wrapper">
            $thumbnail
        </div>
    </div>
SCC;
/**
 * The above line ("SCC;") MUST NOT have any other characters before it.
 * No spaces or tabs (indentation) can be before or after it,
 * those 4 characters must be the only characters on the line
 */

    echo do_shortcode('[tab_item title="ITEM_TITLE"]' . $sc_content . '[/tab_item]');



endwhile;
?>