[英]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.