Intereting Posts
Параметры apache_mod_loaded могут подключаться к плагинам? Как узнать, какой фильтр использовать и как его использовать? Как оценивать сообщение с Admin Side / Manually? Создание собственной папки пользователя при регистрации пользователя Изменение цены отображения WooCommerce на основе роли пользователя и категории Пользовательские размеры изображений для пользовательских загрузок полей get_the_title ($ postID) ИЛИ get_the_title ()? Ошибка CDATA для RSS-канала Использование в 'category_name' в '$ query-> set ();'? Как вернуться к wordpress 3.5 Алфавитная сортировка пользовательского типа сообщения – одна буква на страницу Каков правильный метод определения «is_front_page» при использовании таких фильтров, как «pre_get_posts» и «posts_where»? Измените код для functions.php с конкретным URL-адресом пользователя Twitter и хэштегами Добавление символьного счетчика к выделению метабокса Ссылки на другой сайт во всем мире на сайте WordPress

Как поместить периоды и пространства для значений массива (мета-ключ)

Проблема:

До того, как я создал мета-боксы, я делал все по-старому, вводя пользовательские поля напрямую. Я прошел процесс заполнения идентификатора и значения вручную и нажал кнопку «Обновить». Я бы ввел все, что хотел, spaces и . (периоды), и они будут правильно применяться в моей базе данных (ERROR FREE). Однако я больше не хочу этого делать вручную, поэтому я создал мета-боксы, но так как я начал их использовать, такие специальные символы . и spaces выполняться, что приведет к пустому полю при попытке обновить сообщение, чтобы сохранить значения метаданных. Что мне не хватает и почему правила для специальных символов различаются, когда вы вручную вводите идентификатор, а не задаете его с помощью мета-боксов. В конечном счете, как я могу создать идентификаторы метаданных массива со специальными символами?

Примечание. Все мои мета-боксы неспециального характера функционируют должным образом. Таким образом, проблема НЕ в функциональности кода

Детали :

Я использую mp3-плеер плагин «mp3-jplayer», который использует пользовательские поля для отображения звука. Пользовательский формат поля (который создатель этого плагина определил, и я не могу изменить себя) …

ID = TrackNumber mp3.Artist

( обратите внимание на пробел и период выше, это то, что вызывает подачу значения метаболизма)

Значение = SongTitle @ SongURL

введите описание изображения здесь

В настоящий момент я использую мета-поля для ввода пользовательских полей следующим образом:

 $meta_boxes[] = array( 'id' => 'musicboxes', 'title' => 'Music Box Head', 'pages' => array('post'), 'context' => 'normal', 'priority' => 'low', 'fields' => array( array( 'name' => 'Musicbox 1', 'desc' => 'ID', 'id' => '1 mp3.Artist', 'type' => 'text', 'std' => '', ) ) ); 

Однако при вводе в поле ID массива «1 mp3.Artist» пользовательское поле не обновляется корректно (другими словами, остается пустым), и я думаю, что это потому, что между номером и словом «mp3» есть пробел ». Итак, как бы я мог (если это возможно) сохранить пространство, чтобы пользовательское поле функционировало правильно с помощью плагина mp3-jplayer.

Solutions Collecting From Web of "Как поместить периоды и пространства для значений массива (мета-ключ)"

Возможно, вы неправильно создали мета-поле: если ваши пользовательские имена полей не являются допустимыми именами переменных, PHP преобразует все символы, не соответствующие [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff] чтобы подчеркнуть. Причина: register_globals. Поле запроса должно работать как переменная.

Существует два способа:

  1. Назовите поле как массив: <input name="foo[TrackNumber mp3.Artist]"> . Затем просто проанализируйте foo чтобы получить значение. Это то, что делает WordPress с настраиваемым полем.

  2. Найдите TrackNumber_mp3_Artist и преобразуйте значение, прежде чем сохранять его в базе данных.

Вы пытались ускользнуть от текста до его сохранения в базе данных?

esc_textarea

 $mp3ID = esc_textarea($_REQUEST['_mp3IDBoxData']); update_post_meta(esc_attr($post_id), '_mp3IDBoxData', $mp3ID); 

Если вы все еще ищете ответ; Думаю, тебе придется обманывать руки. Во-первых, вам нужно обрезать значение, которое регистрируется в пользовательском поле Name («1 mp3.Artist»).

Например: $ id = trim ($ field ['id']); $ newID = get_post_meta ($ post-> ID, $ id, true);

Надеюсь, это поможет. Я не тестировал его, но логика, стоящая за ним, должна сделать трюк. Удачи!