Невидимые произвольные поля: как создать их и как отобразить на странице редактирования поста

Если вы заглядывали в базу данных WordPress через например phpMyAdmin, то вы никогда не задумывались, почему у некоторых произвольных полей перед названием стоит знак подчеркивания?

Произвольные поля с таким названием не отображаются в админке при редактировании поста. Добавить через админку их тоже не получится, но стандартные функции работают норм:

add_post_meta($post_id, '_name', $value);

или:

update_post_meta($post_id, '_name', $value);

Короче говоря тут уже ничего нового, все так же, как и с обычными произвольными полями.

Как включить отображение скрытых произвольных полей?

Видел пару плагинов и довольно много статей на эту тему, вот только все они используют один и тот же принцип, основанный на CSS, и уже не работают.

Самое забавное, что дата публикации многих из этих статей довольно свежая, очевидно, что люди копировали листинги с кодом, не задумываясь. Ну да ладно :)

Пришлось лезть в код движка WordPress и искать фильтр самому. К счастью он нашелся. Написать этот хук оказалось совсем не трудно. Итак, вставляем его в functions.php активной темы:

function show_protected_custom_fields( $protected, $meta_key, $meta_type ) {
		if ( isset( $meta_key ))
			return false;
}
 
add_filter( 'is_protected_meta', 'show_protected_custom_fields', 20, 3 );

Теперь скрытые произвольные поля уже больше не скрытые и их тоже можно добавлять через админку.

Вот результат:

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

Смотрите также

Комментарии 3

  • Phoenix16 декабря 2012 в 22:12 #

    Спасибо большое! Вы мне очень помогли. Я часа 2 искал по всему интернету как включить эти поля))

  • Ольга27 декабря 2014 в 14:12 #

    Здравствуйте! А возможно ли как-то отобразить произвольные поля в админке, но без захода в редактирование самой записи? К примеру, как в админке вордпресс можно быстро присвоить записи рубрику через "свойства" (без захода на страницу редактирования".

    • Миша28 декабря 2014 в 07:12 #

      Здравствуйте!
      Возможно и можно, но это придётся капитально поработать с меню Quick Edit — насколько я знаю, оно поддаётся редактированию через фильтры.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...