我根据教程https://www.smashingmagazine.com/2012/05/adding-custom-fields-in-wordpress-comment-form/在一个小插件的帮助下,在我的wordpress页面的评论部分添加了一个额外的字段。
它只需要一个字段(邮政编码)。
插件工作正常,但它会在每个页面上添加自定义字段。我只想在一个特定的页面上找到它。
我尝试将所有插件代码包装到一个加载到特定页面上的函数中:
add_action('template_redirect', 'load-on-certain-page');
function load-on-certain-page(){
if ( is_page(23) ) {
//Complete Plugin Code
}
}
基本上可行,但空字段的检查不再有效。
add_filter( 'preprocess_comment', 'verify_comment_meta_data' );
function verify_comment_meta_data( $commentdata ) {
if (empty( $_POST['title'] ) )
wp_die( __( 'Fehler: Bitte geben Sie Ihre Postleitzahl ein.' ) );
return $commentdata;
}
如果我从load-on-certain-page()
函数中排除字段检查,它会检查所有字段,以便没有解决方案。我还尝试在if语句(is_page()
)中添加一个附加条件,但这也不起作用。
您是否可以指出我如何使我的插件功能仅在该特定页面上工作?什么"最佳实践"是做的吗?
谢谢!
答案 0 :(得分:0)
您可以添加if / else语句,仅显示该特定页面上的字段...
if ( $post->ID === 23 ) {
// Input for zip code on page 23
} else {
// No input for zip code
}
答案 1 :(得分:0)
最后我明白了。
问题是,is_page()等对“preprocess_comment”过滤器不起作用。 但您可以使用以下方法检查评论将分配给的页面ID:
$post_id = $commentdata['comment_post_ID'];