如何在PHP中的短代码(Echo';d)周围添加IF语句?(隐藏/显示选项卡)
我使用以下短代码将一组选项卡插入到我的php wordpress模板中如何在PHP中的短代码(Echo';d)周围添加IF语句?(隐藏/显示选项卡),php,wordpress,if-statement,tabs,conditional,Php,Wordpress,If Statement,Tabs,Conditional,我使用以下短代码将一组选项卡插入到我的php wordpress模板中 <?php echo do_shortcode('[tabs style="boxed"] [tab title="1"][some content here][/tab] [tab title="2"]' . get_the_excerpt() . '[/tab] [/tabs]'); ?> 好的做法不是回送单行,而是将它们存储
<?php echo do_shortcode('[tabs style="boxed"]
[tab title="1"][some content here][/tab]
[tab title="2"]' . get_the_excerpt() . '[/tab]
[/tabs]'); ?>
好的做法不是回送
单行,而是将它们存储在一个变量中并回送出最终代码,如下所示:
<?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 );
?>
好的做法不是回送
单行,而是将它们存储在一个变量中并回送出最终代码,如下所示:
<?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 );
?>
您必须在do_shortcode函数上方执行短码的条件编译,不能在串联字符串中执行if语句。您必须在do_shortcode函数上方执行短码的条件编译,不能在串联字符串中执行if语句。您好,非常感谢您的回复。我已经粘贴了这段代码来代替我所拥有的内容和页面加载,但是现在根本没有显示任何选项卡。我仔细检查了我的自定义字段名,该框实际上已被选中。你能看到它们不显示的原因吗?很难从这段代码中分辨出来,但如果没有加载制表符,这意味着if
语句可能是false
。检查您提交的值,这意味着,回显在get\u post\u meta
中接收到的值。您好,选项卡开始工作(不确定为什么我刚刚添加了2个),但条件逻辑似乎不起作用。我把代码粘贴在这里,让你看看我是否将标签2作为一个例子,结果是错误的。但该选项卡仍显示在前端。有什么想法吗?谢谢你的帮助,语法正确。如果你得到了错误的结果,那么给出的数据就有问题了。是的,谢谢,伙计,我不确定出了什么问题。我在回显复选框的结果(真-假结果等),但即使它们为假,标签仍然保留。我做了一个测试,将代码中的自定义字段重命名为不存在的内容,然后选项卡就不显示了。不知何故,当结果为假时,它并没有隐藏它……天哪,我就快到了,我能感觉到它!:(嗨,Dainis,太棒了,谢谢你的回复。我已经粘贴了这段代码来代替我所拥有的内容和页面加载,但现在根本没有显示任何选项卡。我双击了我的自定义字段名,并且实际选中了该框。你能看到它们不显示的原因吗?很难从这段代码中分辨出来,但是如果没有加载选项卡,这意味着如果状态可能是false
。检查您提交的值,这意味着回显在get\u post\u meta
中接收到的值。嗨,选项卡开始工作了(不确定我为什么又添加了两个)但条件逻辑似乎不起作用。我将代码粘贴在这里,让你看看我是否以回显表2为例,结果为假。但该选项卡仍显示在前端。有什么想法吗?谢谢你的帮助语法是正确的。如果你得到错误的结果,那么给出的数据就有问题。是的,谢谢,伙计,我不确定出了什么问题。我正在呼应复选框的结果(真假结果等)但即使它们为false,选项卡也会保留。我做了一个测试,将代码中的自定义字段重命名为不存在的字段,然后选项卡不会显示。不知何故,当结果为false时,它不会隐藏它……天哪,我能感觉到它(