Tab Shortcode之间的Php代码

时间:2017-09-12 19:31:19

标签: php wordpress advanced-custom-fields

我想在Tabby标签短片之间插入php代码。

我正在使用插件tabby tab作为标签视图,并在我的主题模板中添加了此代码:

conditional

我想使用以下代码在图片标签下使用自定义字段库:

<?php echo do_shortcode('[tabby title="Gallary Name"]
  name content 
  [tabby title="Images"]

  [tabbyending]'); ?>

此代码无效,显示空白页面。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

Tabby使用全局变量来跟踪正在发生的事情,因此我认为其中任何一个都可行。第一个更直接,但第二个肯定会有用。

选项1:按顺序输出所有内容:

echo do_shortcode( '[tabby title="Gallery Name"] name content' );
echo do_shortcode( '[tabby title="Images"]' );

// your php code as-is
$i = 0;
$images = get_field('vil_pics');
if( $images ): ?>
  <div>
    <ul>
        <?php foreach( $images as $image ):
          $i++ ?>
          <li<?php if ( $i % 3 == 0 ) echo ' class="break"' ?>>
            <a href="<?php echo $image['url']; ?>">
              <img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" />
            </a><p>.</p>
          </li>
        <?php endforeach; ?>
    </ul>
  </div> 
<?php endif;

echo do_shortcode( '[tabbyending]' );

或选项2:将所有内容保存到变量并立即输出:

$output = '';

$output .= '[tabby title="Gallery Name"] name content';
$output .= '[tabby title="Images"]';

$i = 0;
$images = get_field('vil_pics');
if ( $images ) {
  $output .= '<div><ul>';
    foreach( $images as $image ) {
      $i++;
      $li_class = ( $i % 3 == 0 ) ? ' class="break"' : '';

      $output .= '<li' . $li_class . '>';
      $output .= '<a href="' . $image['url'] . '">';
      $output .= '<img src="' . $image['sizes']['thumbnail'] . '" alt="' . $image['alt'] . '" />';
      $output .= '</a><p>.</p></li>';
    }
  $output .= '</div></ul>';
}

$output .= '[tabbyending]';

echo do_shortcode( $output );

请注意,我没有看到任何增加$i的内容,所以我补充说。其他一切都按原样。