0

我使用以下简码在我的 php wordpress 模板中插入了一组标签

    <?php echo do_shortcode('[tabs style="boxed"]
            [tab title="1"][some content here][/tab]
            [tab title="2"]' . get_the_excerpt() . '[/tab]
            [/tabs]');  ?>

这工作正常。

我在自定义帖子中创建了 2 个名为“tab_contact_1”和“tab_contact_2”的自定义复选框字段。

我想向选项卡添加条件逻辑,以便如果复选框为真/选中,则选项卡显示。如果没有,它会隐藏。(这是因为有些帖子有此内容可用,有些则没有)

我有类似的逻辑适用于网站上的其他自定义字段,但不使用标签,我认为我可以应用相同的心态。我试了一下代码(见下文),但页面没有加载。我做错了什么,但无法弄清楚。希望得到一些指导。

多谢

<?php echo do_shortcode('[tabs style="boxed"]
' . if ( get_post_meta($post->ID, 'tab_contact_1', true)) { . '
[tab title="1"][some content here][/tab]
'. } .'
' . if ( get_post_meta($post->ID, 'tab_contact_2', true)) { . '
[tab title="2"]' . get_the_excerpt() . '[/tab]
'. } .'
[/tabs]');  ?>
4

1 回答 1

4

好的做法不是echo单行,而是将它们存储在一个变量中并像这样回显最终代码:

<?php

$result = '';

$result .= '[tabs style="boxed"]';
if ( get_post_meta( $post->ID, 'tab_contact_1', true ) != 'false' ) {
    $result .= '[tab title="1"][some content here][/tab]';
}
if ( get_post_meta( $post->ID, 'tab_contact_2', true ) != 'false' ) {
    $result .= '[tab title="2"]' . get_the_excerpt() . '[/tab]';
}
$result .= '[/tabs]';

echo do_shortcode( $result );

?>
于 2012-07-17T08:24:55.350 回答