我只想在get\\u字段(\'cennik\\u title\')在循环中为其分配了值时打印HTML块,当自定义字段中没有插入值时,应该跳过该块,但在这段代码中,HTML块正在打印,即使我没有为“cennik\\u title”自定义字段插入值,我也使用了unset(),但它不起作用,我可以通过其他方式实现它吗?
<div class="card-body ouroffer">
<?php
$args = array( \'post_type\' => \'cennik_post\',
\'category_name\' => \'Stylizacja Rzęs i Paznokci\',
\'orderby\' => \'date\',
\'order\' => \'ASC\',);
$cennik_query = new WP_Query ($args);
$i=1;
if(have_posts()) : while ( $cennik_query->have_posts() ) : $cennik_query -> the_post();
?>
<?php $ct = get_field(\'cennik_title\');
if (isset($ct)):
?>
<ol>
<li><?php the_field(\'cennik_title\'); ?></li>
<li>
<ul>
<?php
endif;
?>
<li><a href="<?php echo get_post_permalink() ?>"><span><?php echo $i . ". " ?><?php the_title(); ?></span></a><span><?php the_field(\'cena\'); ?> zł / <?php the_field(\'trwania\'); ?> min</span></li>
<?php
if (isset($ct)):
?>
</ul>
</li>
</ol>
<?php
endif;
?>
<?php
$i++;
unset($ct);
endwhile; endif;
?>
</div>
最合适的回答,由SO网友:Jacob Peattie 整理而成
isset()
是此处使用的错误函数。$ct
已设置,因为您正在此处设置:
$ct = get_field(\'cennik_title\')
isset()
只有在以下情况下才会为false
$ct
从未定义或设置为
NULL
.
get_field()
将返回
false
如果没有值,则为空字符串
isset()
将返回
true
对于那些。
您想检查它是否有值,但不是false或empty。最简单的方法就是:
if ( $ct ) :