WP自定义评论字段仅限于特定网页

时间:2016-10-17 09:00:36

标签: php wordpress plugins

我根据教程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())中添加一个附加条件,但这也不起作用。

您是否可以指出我如何使我的插件功能仅在该特定页面上工作?什么"最佳实践"是做的吗?

谢谢!

2 个答案:

答案 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'];