如何從自定義帖子類型中刪除或隱藏評論 » 禁用自定義帖子類型中的評論

已發表: 2020-01-31

如何從自定義帖子類型中刪除評論 您是否正在尋找隱藏自定義帖子類型評論或完全刪除自定義帖子類型評論的最佳方法? 如果這樣做,解決方案在於如何註冊自定義帖子類型。 理想情況下,自定義帖子類型類似於頁面和帖子,如果您允許它們具有這些功能,它們會繼承頁面和帖子的所有特徵。

雖然您可以控制自定義帖子類型如何支持不同的功能,但可能難以控制第三方插件中的自定義帖子類型或使用自定義帖子類型的主題所支持的功能。

因此,有必要了解如何刪除您不希望在您的網站上出現的自定義帖子類型支持的評論或其他功能。

這將是一個非常簡單的幾個步驟過程,因為 WordPress 中有一個功能可以幫助您刪除您不想要的自定義帖子類型的功能。

隱藏自定義帖子類型的評論

如上所述,要成功從自定義帖子類型中刪除評論,您需要了解如何註冊自定義帖子類型,以及如何在不使用插件的情況下註冊自定義帖子類型的教程是一個很好的起點。

您還可以將以下代碼複製到主題的 functions.php 文件以註冊自定義帖子類型,您可以使用該類型測試如何從自定義帖子類型中刪除評論:

 /**
  * 自定義帖子類型 - register_post_type()
  * @description- Njengah 教程自定義帖子類型示例 
  * @link -https://gist.github.com/Njengah/839466b773085ac2430772e081357cee
  *
  */ 


	add_action('init', "njengah_tutorial_cpt");
  
  
	函數 njengah_tutorial_cpt(){
		
		$標籤=數組(
				'name' => _x('Tutorials', '帖子類型通用名稱'),
				'singular_name' => _x('Tutorial', 'post type 單數名稱'),
				'menu_name' => _x('Tutorials', 'admin menu'),
				'name_admin_bar' => _x('Tutorial', 'add new on admin bar'),
				'add_new' => _x('新增', ''),
				'add_new_item' => __('添加新教程'),
				'edit_item' => __('編輯教程'),
				'new_item' => __('新教程'),
				'all_items' => __('所有教程'),
				'view_item' => __('查看教程'),
				'search_items' => __('搜索教程'),
				'not_found' => __('沒有找到教程'),
				'not_found_in_trash' => __('沒有在垃圾箱中找到教程'), 
				'parent_item_colon' => __('家長教程:'),
				
		);

			$args = 數組(
				'分層' => 真的,     
				'標籤' => $標籤,
				'公共' => 真的,
				'publicly_queryable' => 真,  
				'描述' => __('描述'),
				'show_ui' => 真, 
				'show_in_menu' => 真,
				'show_in_nav_menus' => 真,			
				'query_var' => 真,
				'重寫' => 真的,
				'query_var' => 真,
				'rewrite' => array('slug' => 'tutorial'),
				'capability_type' => '頁面',
				'has_archive' => 真, 
				'menu_position' => 22,
				“show_in_rest” => 真,
				'supports' => array('title', 'editor', 'author', 'thumbnail', 'comments', 'revisions', 'page-attributes', 'custom-fields' )
			); 

			register_post_type('tutorial', $args);
		
		
	}

如果您仔細查看該代碼,則$args數組中有一條重要的行,其中包含鍵 - 'supports'這需要一個包含多個值的數組,這些值表示自定義帖子類型支持的功能,如圖所示以下 :

如何從自定義帖子類型中刪除評論

當此評論值在該數組中時,它僅表示自定義帖子類型支持評論,並且它們將在自定義帖子編輯器中看到,如本特定教程自定義帖子類型所示:

如何從自定義帖子類型中刪除評論

您可以簡單地從此自定義帖子類型註冊代碼中刪除該“評論”,並且您將在沒有評論支持的情況下註冊自定義帖子類型

如何從自定義帖子類型中刪除評論

由於您可能無法控制其他插件或主題在您的網站上註冊的所有自定義帖子類型,因此您可以使用 WordPress 提供的刪除選項刪除自定義帖子類型上的評論。

WP 功能:remove_post_type_support()

此選項採用函數的形式——remove_post_type_support(),它簡單地刪除了對某個自定義帖子類型的各種功能的支持。

該函數的一般代碼表達式如下:

remove_post_type_support( string $post_type, string $feature )

如您所見,它有兩個參數,它們都是字符串,參數如下:

範圍描述
$post_type 這是我們打算從中刪除評論或我們要刪除的自定義帖子類型支持的任何其他功能的自定義帖子類型。
$功能這是我們要刪除的自定義帖子類型的功能。 例如,在這種情況下; 我們要刪除“評論”功能。

要從自定義帖子類型中刪除這些評論,我們現在可以編寫一個掛鉤“init”的操作掛鉤,並在回調函數中運行 remove_post_type_support() 函數,我們將在其中傳遞相應的參數。

以下是可用於從名為“教程”的自定義帖子類型中刪除評論的代碼

/**
 * 刪除教程自定義帖子類型評論
 */ 

add_action('init', 'remove_custom_post_type_comments');

功能 remove_custom_post_type_comments() {
    remove_post_type_support('教程', '評論');
}

此代碼應添加到 functions.php 文件中,您將成功刪除自定義帖子類型評論,如下圖所示:

隱藏自定義帖子類型的評論

結論

當您想要隱藏自定義帖子類型評論時,您不必在註冊自定義帖子類型時包括對評論的支持。

或者,如果您正在處理現有的自定義帖子類型並且想要從這些自定義帖子類型中刪除評論; 您應該使用remove_post_type_support() function ,該函數還從自定義帖子類型中刪除其他功能。

您還可以使用此方法從 WooCommerce 產品中刪除評論,因為該產品是自定義帖子類型,並且評論等同於默認 WordPress 帖子中的評論。