Intereting Posts
Изменение страницы регистрации по умолчанию? Как вставить мета ключевое слово на страницу результатов поиска Получение заметки с изображением для показа только если заполнено Получить поля ACF в отношениях возвращенного сообщения Панель управления Admin – источник недавних комментариев wordpress действует как functions.php не существует Добавление настраиваемого url для ссылки readmore с помощью get_permalink () Все мои собственные стили Bootstrap не работают в моей дочерней теме! Фильтр таксономии под Polylang получить URL-адрес аватара вместо тега html img при использовании get_avatar? Удалить пользовательский пул типа сообщения Выразить нежелательный текст "<! – value: ->" Как получить информацию о фиде из кеша, а не напрямую из фида? Любой способ «объединить» галереи или показать несколько галерей как один? Страница сайта WordPress существует, но ошибка 404

Как отображать пользовательский метабокс только на конкретных идентификаторах страниц

Я использую Magic Fields 2 для пользовательских мета-полей и настраиваемых полей, но эта ситуация относится к любому мета-поле.

У меня есть специальный мета-ящик, который я хочу отображать только на 3 отдельных идентификаторах страниц.

function mf_1_remove_meta_boxes() { if( !in_array($_GET['post'], array('194','185','2') ) ): remove_meta_box( 'mf_1', 'page', 'normal' ); } 

ОБНОВИТЬ

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

ОБНОВЛЕНИЕ 2

Приведенный выше код был изменен, чтобы исправить проблему с мета-полем, появляющимся на новой (несохраненной) странице. Он также был изменен на полный и рабочий код. Мета-окно будет удалено для всех пользователей.

Чтобы удалить мета-окно для всех, кроме администраторов:

 function mf_1_remove_meta_boxes() { if( !is_admin()) return; if( !in_array($_GET['post'], array('194','185','2') ) ): remove_meta_box( 'mf_1', 'page', 'normal' ); } 

Solutions Collecting From Web of "Как отображать пользовательский метабокс только на конкретных идентификаторах страниц"

Простое и чистое решение было бы использовать! In_array ex:

 function mf_1_remove_meta_boxes() { if( !is_admin() && !isset( $_GET['post'] ) ) return; if( !in_array($_GET['post'], array('194','185','2') ) ) remove_meta_box( 'mf_1', 'page', 'normal' ); } 

таким образом вы можете просто добавить идентификаторы в массиве и столько, сколько хотите

Пытаться:

if($_GET['post'] != 194 || $_GET['post'] != 185 || $_GET['post'] != 2)

Он должен работать так.