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. |