Intereting Posts
Виджеты в цикле, если они активны Почему $ wpdb-> show_errors () и print_error () показывают вывод, даже если вывод запроса правильный? Каков правильный способ включения встроенного javascript-источника? Загрузка нескольких комментариев через Ajax? Включение jQuery в WordPress Правильный способ сериализации данных таблицы опций? Разрешить роли пользователя «продавец» просматривать только роли пользователей «клиент» Устранение неполадок Emoji в комментариях Проблема в установке темы? Показывать название категории и новые статьи и отображать номера страниц. Какую функцию использовать Неустранимая ошибка при установке woocommerce, несмотря на обновление Как изменить отображение списка виджетов категории по умолчанию? Как удалить метатекст почтового формата? Пользовательский столбец для изменения статуса сообщения через ajax Как добавить и отобразить reCAPTCHA в защищенной паролем форме?

Как я могу скрыть пользовательское поле от пользователей, используемых для кэширования ответа от внешнего api?

У меня есть мета-поле, созданное с помощью мета-сценария Rilwis (http://www.deluxeblogtips.com/meta-box/) в моей теме functions.php.

Он имеет 2 текстовых поля, для получения результатов из api требуется одно поле, поэтому оно должно быть видимым в пользовательском мета-окне. Но в другом поле хранится сериализованный массив, который является ответом, полученным из внешнего api. Поэтому я хочу, чтобы это поле было скрыто.

Скажите, пожалуйста, как скрыть другое поле. Вот код, который определяет два текстовых поля:

 if (! class_exists ('F8_Stores')) {class F8_Stores {private $ fields = array ();  private $ validation = array ();  private $ prefix = 'f8_';  public function __construct () {add_action ('admin_init', array ($ this, 'register_store_meta_box'));  } public function register_store_meta_box () {$ this -> fields = $ this -> add_custom_fields ();  $ this -> validation = $ this -> add_validation_rules ();  $ meta_box = array ('id' => 'f8_stores', 'title' => 'Online Retail Stores', 'pages' => array ('post', 'page'), 'context' => 'normal', ' 'priority' => 'high', 'fields' => $ this -> fields, 'validation' => $ this -> validation);  новый RW_Meta_Box ($ meta_box);  } private function add_custom_fields () {$ fields = array (array ('name' => 'Amazon US Product ASIN', 'desc' => 'Пожалуйста, введите продукт ASIN', 'id' => $ this -> prefix. ' amazon_us_asin ',' type '=>' text ',' std '=> false,' clone '=> false,), array (' name '=>' Amazon US Store Cache ',' desc '=>' Пользователи должны не вижу этого ',' id '=>' _ '. $ this -> prefix.' amazon_us_store_cache ',' type '=>' text ',' clone '=> false,),);  echo $ fields [1] ['id'];  return $ fields;  } private function add_validation_rules () {$ validation = array ();  return $ validation;  }}} $ F8_Stores = new F8_Stores (); 

Я использую это внутри класса, и, несмотря на добавление «_'в перед« id »текстового поля 2, поле все еще видно внутри метабокса. Не знаете, что мне не хватает?

Любая помощь приветствуется … спасибо!

PS Я использую Rilwis Meta Box 4.2.3 и WordPress 3.5, работающие на xampp.

Обновление: теперь я опубликовал свой фактический класс, ответственный за создание метабокса. Обновление: Спасибо всем за ответ, проблема теперь исправлена.

Solutions Collecting From Web of "Как я могу скрыть пользовательское поле от пользователей, используемых для кэширования ответа от внешнего api?"

Использование ведущего подчеркивания скроет значение поля из раздела по умолчанию пользовательских полей WordPress, а не мета-поля, который вы создаете через плагин.

Если вы не хотите, чтобы поле отображалось в вашем мета-окне, не добавляйте поле в мета-окно вообще, оно действительно не имеет никакой цели. Вы можете управлять значением поля в своем коде непосредственно через update_post_meta и get_post_meta .

Вам не нужно ставить _ перед «id», но перед префиксом.

Ваш код должен работать следующим образом:

 $fields = array( array( 'name' => 'Text field 1', 'desc' => 'This is required', 'id' => '_' . $this -> prefix . 'field_1', 'type' => 'text', 'std' => false, 'clone' => false, ), array( 'name' => 'Text field 2', 'desc' => 'This is required', 'id' => '_' . $this -> prefix . 'Text field 2', 'type' => 'text', 'clone' => false, ), );