Как удалить или скрыть комментарии в произвольном типе сообщений » Отключить комментарии в произвольных типах сообщений

Опубликовано: 2020-01-31

Как удалить комментарии из произвольного типа записи Вы ищете лучший способ скрыть комментарии из пользовательских типов сообщений или полностью удалить комментарии из пользовательских типов сообщений? Если вы это сделаете, решение заключается в том, как вы регистрируете пользовательский тип сообщения. В идеале настраиваемые типы постов похожи на страницу и пост, и они наследуют все характеристики страниц и постов, если вы разрешите им иметь эти функции.

Хотя вы можете контролировать, как пользовательские типы сообщений поддерживают различные функции, может быть сложно контролировать функции, поддерживаемые пользовательскими типами сообщений в сторонних плагинах или вашей теме, которая использует настраиваемые типы сообщений.

По этой причине необходимо узнать, как можно удалить комментарии или другие функции, поддерживаемые пользовательскими типами сообщений, которые вам не нужны на вашем веб-сайте.

Это будет очень простой процесс, состоящий из нескольких шагов, поскольку в WordPress есть функция, которая поможет вам удалить функции пользовательского типа записи, которые вам не нужны.

Скрыть комментарии к пользовательским типам записей

Как указано выше, для успешного удаления комментариев из настраиваемых типов сообщений вам необходимо понять, как регистрируются настраиваемые типы сообщений, и руководство о том, как зарегистрировать настраиваемый тип сообщений без использования плагина , является хорошей отправной точкой.

Вы также можете скопировать следующий код в файл functions.php вашей темы, чтобы зарегистрировать пользовательский тип сообщений, который вы можете использовать для проверки того, как удалять комментарии из пользовательских типов сообщений:

 /**
  * Пользовательский тип сообщения - register_post_type()
  * @description- Njengah Tutorial Пример пользовательского типа записи 
  * @ссылка - https://gist.github.com/Njengah/839466b773085ac2430772e081357cee
  *
  */ 


	add_action('init', "njengah_tutorial_cpt");
  
  
	функция njengah_tutorial_cpt () {
		
		$метки = массив(
				'name' => _x('Учебники', 'общее название типа записи'),
				'singular_name' => _x('Учебник', 'тип сообщения в единственном числе'),
				'menu_name' => _x('Учебники', 'меню администратора'),
				'name_admin_bar' => _x('Учебник', 'добавить новый в панель администратора'),
				'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' => __('Учебники для родителей:'),
				
		);

			$аргументы = массив(
				'иерархический' => правда,     
				'метки' => $метки,
				'общедоступный' => правда,
				'public_queryable' => правда,  
				'описание' => __('Описание.'),
				'show_ui' => правда, 
				'show_in_menu' => правда,
				'show_in_nav_menus' => правда,			
				'query_var' => правда,
				'переписать' => правда,
				'query_var' => правда,
				'переписать' => массив ('слаг' => 'учебник'),
				'capability_type' => 'страница',
				'has_archive' => правда, 
				'меню_позиция' => 22,
				"show_in_rest" => правда,
				'supports' => array( 'название', 'редактор', 'автор', 'миниатюра', 'комментарии', 'ревизии', 'атрибуты страницы', 'настраиваемые поля' )
			); 

			register_post_type('учебник', $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 по умолчанию.