unregister_post_type() WP 4.5.0

Скасує реєстрацію зазначеного типу запису. Видаляє тип запису.

Не працює з вбудованими типами записів: пости, сторінки, вкладення тощо, тобто. з тими, у яких вказаний параметр _builtinпри реєстрації за допомогою register_post_type .

При видаленні типу запису видаляється все, що з ним пов’язано: параметри запиту, правила ЧПК і т.д.

Для скасування реєстрації таксономії використовуйте unregister_taxonomy() .

Хуки з функції

Повертає

true|WP_Error. True, при успішному скасуванні. WP_Error, при невдалому скасуванні або коли зазначеного типу запису не існує.

Використання

unregister_post_type( $post_type );
$post_type
(рядок) (обов’язковий)
Назва типу запису, який потрібно скасувати.

Приклади

0

#1 Скасування зареєстрованого типу запису

Припустимо, якийсь плагін або тема додає свій тип запису product, а нам цей тип не потрібен і ми хочемо його скасувати.

// Оскільки типи записів реєструються зазвичай під час події ``init``,
// то видаляти їх потрібно пізніше цієї події.
// Можна використовувати подію "wp_loaded" або той же "init" але з меншим пріоритетом.

add_action( 'init', 'my_unregister_post_type', 999);
function my_unregister_post_type(){
	unregister_post_type('product');
}

нотатки

  • Global. Масив. $wp_post_types List of post types.

список змін

З версії 4.5.0Введено.

Код unregister_post_type() WP 6.0.2

function unregister_post_type( $post_type ) {
	Global $wp_post_types;

	if ( ! post_type_exists( $post_type ) ) {
		return new WP_Error( 'invalid_post_type', __( 'Invalid post type.' ) );
	}

	$post_type_object = get_post_type_object( $post_type );

	// Do not allow unregistering internal post types.
	if ( $post_type_object->_builtin ) {
		return new WP_Error( 'invalid_post_type', __( 'Unregistering a built-in post type is not allowed' ) );
	}

	$post_type_object->remove_supports();
	$post_type_object->remove_rewrite_rules();
	$post_type_object->unregister_meta_boxes();
	$post_type_object->remove_hooks();
	$post_type_object->unregister_taxonomies();

	unset( $wp_post_types[ $post_type ] );

	/**
	 * Fires after a post type was unregistered.
	 *
	 * @ Since 4.5.0
	 *
	 * @param string $post_type Post type key.
	 */
	do_action( 'unregistered_post_type', $post_type );

	return true;
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *