Intereting Posts
Перенаправление без регистрации пользователей на конкретную страницу на основе шаблона страницы Word / blog / in slug post, проблемы в CPT. Решения? do_shortcode () внутри страницы администратора Надежность обновления WordPress 4 с одним кликом зацикливание, хотя пользовательские типы сообщений и только возврат результатов в данной таксономии Почему мой WordPress показывает 404 сообщение для 403 запрещенных каталогов? Создание вкладок на странице параметров администрирования из настраиваемого цикла post post Скопировать запись wp_posts для быстрого доступа к файлу в медиатеке Включить подпись под изображениями Переписать страницу на субдомен другому Принудительный SSL-протокол для дочерних сайтов субдоменов с несколькими субсайтами + настройка cPanel Мета-ящик с интерфейсом Показывать роль пользователя рядом с комментарием Показать текущую страницу с изображением на боковой панели Как автоматически делиться сообщениями на facebook?

Как я могу скрыть пользовательское поле от пользователей, используемых для кэширования ответа от внешнего 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, ), );