我使用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()
函数,即使值为空,也会返回数组。