WordPress, 實用技巧

停用 WordPress 預設的留言功能,遠離廣告騷擾

停用 WordPress 預設的留言功能,遠離廣告騷擾

廣告留言一堆煩得要死?

在當前的網路環境下,廣告和垃圾留言成為了不少網站管理者的困擾。特別是對於使用 WordPress 的網站來說,預設的留言功能有時候會吸引大量的垃圾留言,不僅消耗網站資源,還可能影響用戶體驗。因此,學會如何停用 WordPress 的留言功能,對於打造一個乾淨、無廣告騷擾的網站環境至關重要。這次介紹一個有效的方法來完全停用 WordPress 網站上的留言功能,包括隱藏現有的留言並阻止未來的留言。我們將透過幾個簡單的程式碼函數來實現這一目標。

程式碼範例

使用 Code Snippet 或者修改佈景主題資料夾下的 functions.php 加入以下程式碼就可以達成,萬事屋推薦用這種方式達成,可以替換成任何想要的文字而且不受限於 WordPress 外掛更新。

function wpasv_disable_comments_hide_existing_comments($comments) {
   $comments = array();
   return $comments;
}
add_filter('comments_array', 'wpasv_disable_comments_hide_existing_comments', 10, 2);

function wpasv_disable_comments_status() {
   return false;
}
add_filter('comments_open', 'wpasv_disable_comments_status', 20, 2);
add_filter('pings_open', 'wpasv_disable_comments_status', 20, 2);

function wpasv_disable_comments_post_types_support() {
   $post_types = get_post_types();
   foreach ($post_types as $post_type) {
      if(post_type_supports($post_type, 'comments')) {
         remove_post_type_support($post_type, 'comments');
         remove_post_type_support($post_type, 'trackbacks');
      }
   }
}

add_action('admin_init', 'wpasv_disable_comments_post_types_support');

function wpasv_remove_comments_menu() {
   remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'wpasv_remove_comments_menu');

運作原理

首先,我們使用 wpasv_disable_comments_hide_existing_comments 函數來隱藏所有現有的留言。這個函數通過將 $comments 變量設置為一個空數組,從而隱藏所有留言。這是因為 WordPress 會使用這個變量來輸出留言列表。通過將它設置為空,我們就能阻止任何留言的顯示。

接下來,wpasv_disable_comments_status 函數會將留言的開放狀態設置為 false,這意味著對於所有文章和頁面,WordPress 將不再允許新的留言或引用通告(pingbacks 和 trackbacks)。這通過將 comments_open 和 pings_open 兩個過濾器鉤子設為 false 來實現。

最後,我們使用 wpasv_disable_comments_post_types_support 函數來移除所有文章類型對留言的支持。這個函數遍歷所有註冊的文章類型,並檢查它們是否支持留言。如果支持,則移除該支持。這樣,即便是主題或外掛添加了留言支持,我們也能確保它們被正確移除。

除此之外,我們還添加了一個動作鉤子來從 WordPress 管理員選單中移除「留言」頁面,進一步淨化管理介面。

通過以上步驟,我們可以有效地停用 WordPress 網站上的留言功能,從而為使用者創造一個更加專注和清爽的網頁瀏覽體驗。這對於那些想要減少網站管理負擔、提升用戶體驗的網站管理者來說,是一個非常有用的技巧。