Red*_*all 0 php wordpress tabs if-statement conditional-statements
我使用以下短代码将一组选项卡插入到我的 php WordPress 模板中
<?php echo do_shortcode('[tabs style="boxed"]
[tab title="1"][some content here][/tab]
[tab title="2"]' . get_the_excerpt() . '[/tab]
[/tabs]'); ?>
Run Code Online (Sandbox Code Playgroud)
这很好用。
我在自定义帖子中创建了 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]'); ?>
Run Code Online (Sandbox Code Playgroud)
好的做法不是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 );
?>
Run Code Online (Sandbox Code Playgroud)