繁体   English   中英

如何在PHP中在Shortcodes(Echo'd)周围添加IF语句? (隐藏/显示标签)

[英]How to Add IF statement around Shortcodes (Echo'd) in PHP? (Hide / Show Tabs)

我已使用以下短代码将一组选项卡插入到我的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”。

我想将条件逻辑添加到选项卡,以便如果复选框为true /选中,则显示选项卡。 如果没有,它会隐藏。 (这是由于某些帖子提供了该内容,而有些则没有)

我在网站上的其他自定义字段上使用了类似的逻辑,但未使用标签,并认为我可以应用相同的思维方式。 我尝试了一下代码(请参见下文),但该页面未加载。 我做错了,但无法解决。 希望获得一些指导。

非常感谢

<?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]');  ?>

优良作法不是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 );

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM