根据另一个自定义字段隐藏自定义字段



我使用WP用户前端制作了前端表单,其中我的电子邮件字段带有META键email和两个复选框字段(隐藏电子邮件),带有选项值Yes (true)No (false)

用户检查Yes时,帖子不得显示该用户的电子邮件地址。我可以看到复选框字段将正确的值保存到数据库,现在我想根据这些值显示或隐藏email字段。

这是我一直在使用的代码,但我不确定为什么它不起作用:

<?php if( get_post_meta($post->ID, 'hide_email', false); ?>
    <p>Email: <?php echo get_post_meta($post->ID, 'email', true);?></p>
<?php else : ?>
    <p>Email:<?php echo "Email is private";?></p>
<?php endif;  ?>

提供'hide_email'被保存为布尔值,您正在尝试将此代码输出在单个邮政模板文件中,这就是您的示例的工作方式:

<?php if ( ! empty( get_post_meta( get_the_ID(), 'hide_email', true ) ) ) : ?>
  <p>Email: <?php echo get_post_meta( get_the_ID(), 'email', true ); ?></p>
<?php else : ?>
  <p>Email: E-mail is private</p>
<?php endif; ?>

您的帖子中的代码示例中有一些语法错误。另外,重要的是要注意,如果您将false作为第三个参数传递给get_post_meta()函数,即使值为空,也会返回数组。

最新更新