Произвольные поля (custom fields) позволяют творить с Вордпресс чудеса. Но, допустим, не всегда имеет смысл формировать из них метабоксы, подключать ACF и подобные ему плагины. Бывает, что нужно просто стандартными средствами Вордпресс задействовать какое-то поле.
Иногда этому могут препятствовать другие, используемые на сайте, произвольные поля. Которых может быть столько, что нужное поле в списке просто не отыскать. В связи с чем, имена полей приходится каждый раз вводить вручную.
Этим, например, грешат некоторые плагины, генерируя неимоверное количество различных произвольных полей, засоряя тем самым выпадающий список доступных полей.
Нужно отметить, что в WordPress имеется возможность делать произвольные поля скрытыми, просто присвоив им имена, начинающиеся с символа подчеркивания. Которые при необходимости можно сделать видимыми, просто добавив в файл функций активной темы одну строку кода:
// Выводим скрытые произвольные поля add_filter('is_protected_meta', '__return_false', 999);
Чтобы, наоборот, скрыть какое-то конкретное произвольные поле, можно воспользоваться таким кодом:
// Скрываем произвольное поле gss add_filter('is_protected_meta', 'my_is_protected_meta_filter', 10, 2); function my_is_protected_meta_filter($protected, $meta_key) { return $meta_key == 'gss' ? true : $protected; }
Можно скрыть целый массив произвольных полей:
// Скрываем несколько произвольных полей: gss_1, gss_2, gss_3 add_filter( 'is_protected_meta', function( $protected, $meta_key, $meta_type ) { $allowed = array( gss_1, gss_2, gss_3 ); if( in_array( $meta_key, $allowed ) ) return true; return $protected; }, 10, 3 );
Ну, а если какой-то нехороший плагин безостановочно генерирует произвольные поля, их можно скрыть по маске:
// Скрываем произвольные поля по маске gss_ add_filter( 'is_protected_meta', function( $protected, $meta_key, $meta_type ) { if (substr($meta_key, 0, 4) === 'gss_') { return true; } return $protected; }, 10, 3 );
В заключение, хотелось бы сказать, что лучше избегать таких ситуаций. Все эти скрытия — очередные костыли.
Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.
Подробнее-
Спасибо! Пригодилась инфа, как отобразить скрытые поля.