【发布时间】:2017-06-01 15:44:27
【问题描述】:
我有一个在 WordPress 中使用的自定义 cmets 模板,用户可以在其中留下评论/评分等。我想要做的是验证其中一个字段不为空。
这是我的功能:
function website_verify_comment_review() {
if (empty($_POST['review-stars-input'])) {
wp_die(esc_html__('Error: Please add a rating with your comment.', 'website'));
}
}
我在我的functions.php 中使用了'pre_comment_on_post' 挂钩,因为如果它不起作用,我似乎无法在其他任何地方添加此操作。
add_action('pre_comment_on_post', 'website_verify_comment_review');
我遇到的问题是,这也在不存在这些自定义评论字段的普通帖子上运行,因此错误也在那里显示。
我需要这个函数来运行过滤器,只在我的自定义帖子类型上运行,但它似乎不起作用。在我上面的函数中,我尝试检查它不是单个帖子“!is_singular('post')”,但这使它不再适用于我的自定义帖子类型。
也许有人知道出了什么问题?为什么这仅在我从 functions.php 添加操作时才有效?
我也尝试过调整 add_action 优先级,但没有成功。
谢谢!
【问题讨论】: