2016-10-17 59 views
1

基于教程https://www.smashingmagazine.com/2012/05/adding-custom-fields-in-wordpress-comment-form/,我在一个插件的帮助下,在我的wordpress页面的注释部分添加了一个额外的字段。只在特定页面上的WP自定义注释字段

这只是我需要的一个字段(邮政编码)。

该插件工作正常,但它会在每个页面上添加自定义字段。我只是想在一个特定的页面上。

我试图包装所有插件代码到加载特定页面上的一个功能:

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

最后我得到了它。

问题是,该is_page()等不适用于“preprocess_comment”过滤器。 但是你可以通过检查页面ID的评论将被分配到:

$post_id = $commentdata['comment_post_ID']; 
0

您可以都不可能添加一个if/else语句,只显示特定页面上的字段...

if ($post->ID === 23) { 
    // Input for zip code on page 23 
} else { 
    // No input for zip code 
} 
+0

那是我在做什么。但是当我把它放到声明中时,检查该字段的部分不再起作用。 :/ – Timo

+0

我注意到你正在使用'is_page()' - 你用'$ post-> ID'试过了吗? –

+0

是的,我也试过。 – Timo

相关问题