Intereting Posts
Есть ли прямой способ перебора всех коротких кодов в сообщении? изменить статус публикации, когда пользователи обновляют сообщения? Как передать массив как атрибут короткого кода для корректного анализа парсера коротких кодов? Переключатель языка WordPress Как загрузить wp_editor где-нибудь еще, кроме области администратора? Поля не отражают предыдущие изменения Quick Edit при повторном нажатии кнопки «Быстрое редактирование» Невозможно выбрать старую дату в wordpress Использование промежуточных медиафайлов на сайте разработки в WordPress Как добавить атрибуты в короткий код динамически создавать функции обратного вызова внутри цикла for Определение пользовательских 404 для частей сайта, отличных от WordPress. Customizer: Как вы добавляете HTML для управления ярлыками? Как добавить отношения между настраиваемыми типами сообщений? форматирование горизонтальных и вертикальных изображений в настройках? Попытка сортировать и отображать категории (не сообщения) по настраиваемому полю: 'order'

Удаление мета-полей: remove-meta_box () или unset ()?

Я видел два способа удаления мета-полей: remove_meta_box () и unset ().

function TEST_remove_dashboard_widgets(){ remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' ); } add_action('wp_dashboard_setup', 'bmc_remove_dashboard_widgets'); 

против

 function TEST_remove_dashboard_widgets() { global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); } add_action('wp_dashboard_setup', 'bmc_remove_dashboard_widgets'); не function TEST_remove_dashboard_widgets() { global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); } add_action('wp_dashboard_setup', 'bmc_remove_dashboard_widgets'); 

remove_meta_box кажется лучше, потому что он явно предназначен только для этого, но я также видел отменную формулировку в нескольких местах.

Почему я должен использовать один против другого?

Solutions Collecting From Web of "Удаление мета-полей: remove-meta_box () или unset ()?"

В случае сомнений пользуйтесь API.

Предположим, что структура $wp_meta_boxes изменится или уйдет один день.

remove_meta_box() все равно будет работать, потому что API – это контракт между ядром и разработчиками. Отключение некоторых ключей в глобальной переменной может сломаться.

unset() проще записать, когда вы хотите удалить целую группу: unset($wp_meta_boxes['dashboard']) явно проще, чем unset($wp_meta_boxes['dashboard']) через каждый отдельный блок. Но более короткий код не всегда лучше, поэтому его нельзя использовать в общедоступном коде.

Обратите внимание: оба метода работают по-разному: unset() удаляет элемент из массива, а remove_meta_box() устанавливает значение элементов в FALSE :

 foreach ( array('high', 'core', 'default', 'low') as $priority ) $wp_meta_boxes[$page][$context][$priority][$id] = false; 

Другие плагины могут полагаться на существование этого элемента – и ломаться после того, как вы использовали unset() .