remove_meta_box()
Видаляє Блоки на сторінках редагування/створення постів, постійних сторінок та довільних типів записів.
Викликати функцію потрібно після того, як метабокси додані. Додаються метабокси зазвичай на хуку add_meta_boxes . До хука add_meta_boxes зареєстровані лише метабокси самого WordPress, на цьому хуку реєструються кастомні метабокси.
Хуків немає.
Повертає
null
. Нічого не вертає.
Використання
remove_meta_box($id, $screen, $context);
-
$id
(рядок) (обов’язковий) id атрибут HTML тега, контейнер Блоку. Базові Блоки WordPress мають такі id:
authordiv
– блок встановлення автора;categorydiv
– категорії;tagsdiv-post_tag
– Мітки;commentstatusdiv
– Блок статусу коментування;commentsdiv
– Блок коментарів;formatdiv
– Формати записів;pageparentdiv
– атрибути постійних сторінок;postcustom
– Блок довільних полів;postexcerpt
– Блок цитати;postimagediv
– блок картинки до поста;revisionsdiv
– Блок ревізій;slugdiv
– блок альтернативної назви статті (slug);trackbacksdiv
– блок повідомлень;- …
-
$screen
(рядок/масив/WP_Screen) (обов’язковий) Назва екрану, де видаляється блок. Дивіться get_current_screen() . Наприклад може бути:
- Для типів записів:
post
,page
,link
,attachment
абоcustom_post_type
- Або для інших сторінок адмінки:
link
,comment
. - Можна зазначити кілька типів у масиві:
array('post', 'page')
. З версії 4.4. null
– видалятиметься на будь-якому екрані (на поточному екрані).
- Для типів записів:
-
$context
(рядок) (обов’язковий) -
Місце, де Блок виводиться. Можливо:
normal
,
advanced
,
side
.
Приклади
#1 Видалення метабоксу
Приклад видалення Блоку довільних полів на сторінці редагування постів:
add_action( 'add_meta_boxes', 'remove_post_custom_fields', 99); function remove_post_custom_fields(){ remove_meta_box( 'postcustom', 'post', 'normal'); }
#2 Видалення “цитати”
Приклад видалення Блоку “Цитата” зі сторінок редагування “постійних сторінок”:
add_action( 'add_meta_boxes', 'remove_page_excerpt_field', 99); function remove_page_excerpt_field() { remove_meta_box( 'postexcerpt', 'page', 'normal'); }
#3 Видалення коментарів
Цей приклад видаляє Блоки “Коментарі”, “Автор” та “Статус Коментарі” зі стариць редагування “постійних сторінок”:
add_action( 'add_meta_boxes', 'remove_page_fields', 99); function remove_page_fields() { remove_meta_box( 'commentstatusdiv', 'page' , 'normal' ); // removes comments status remove_meta_box( 'commentsdiv', 'page' , 'normal' ); // removes comments remove_meta_box( 'authordiv', 'page' , 'normal' ); // removes author }
#4 Видалення довільних таксономій
Якщо потрібно видалити Блок довільної таксономії (створений користувачем), на сторінці редагування довільного типу запису, використовуйте такий код:
add_action( 'add_meta_boxes', 'remove_custom_taxonomy', 99); function remove_custom_taxonomy(){ remove_meta_box( 'tagsdiv-custom_taxonomy_slug', 'назва_типу_поста', 'side' ); }
#5 Так можна видалити навіть Блок публікації:
add_action( 'add_meta_boxes', 'remove_publish_box', 99); function remove_publish_box(){ remove_meta_box( 'submitdiv', 'custom_post_slug', 'side' ); }
#6 Видалимо метаблок ‘commentsdiv’ якщо тип посту не підтримує ‘comments’.
У WordPress цей метабокс з’являється у випадках, коли тип посту підтримує ‘comments’ або якщо пост має коментарі або якщо коментарі відкриті. А якщо для типу запису не вказана підтримка ‘comments’, то метабокс все одно з’являється і автор посту може редагувати коментарі. Іноді це не потрібно і в цих випадках метабокс коментарів запису ‘commentsdiv’ можна видалити так:
// видалимо метаблок 'commentsdiv' якщо тип посту не підтримує 'comments'. // дивно, що в WP це не так зроблено! //do_action( 'add_meta_boxes', $post_type, $post); add_action( 'add_meta_boxes', function( $post_type ) { if( ! post_type_supports( $post_type, 'comments' ) ) remove_meta_box( 'commentsdiv', $post_type, 'normal' ); //removes comments } );
нотатки
- Global. Масив. $wp_meta_boxes
список змін
З версії 2.6.0 | Введено. |
З версії 4.4.0 | The $screen parameter now accepts an array of screen IDs. |