2016-10-17 56 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

相關問題