Intereting Posts
Создание архивных страниц для детских категорий Задайте заголовок пользовательского типа и слизню в соответствии с текущей датой Стиль детской темы повторяется Ajax-вызов через admin-ajax.php возвращает ошибку 404 Отображение сообщения в зависимости от значения настраиваемого поля Переопределить orderby для создания списка пользователей по пользовательскому meta_value Добавить «последний» класс во второй пост в избранном цикле сообщений Как написать этот короткий код? Как добавить метабокс в панель администратора? Фильтр WordPress php admin_body_class не работает Добавить ссылку на родительскую страницу в списке дочерних страниц Как обновить / удалить массив в метатете post? Автоматически добавлять теги, если флажок установлен Закажите персонализированный экран типа персонализированного почтового сообщения вторым типом заголовка пользовательского сообщения Атрибуты короткого кода не отображаются?

прохождение разметки считало атрибут короткого кода

Счастливые праздники.

Надеюсь, кто-то может помочь мне в размышлении о проблеме, с которой я столкнулся.

У меня есть плагин Im building, который позволяет пользователю извлекать адресные данные из API карт – то есть он проверяет адрес и, если он является бизнесом, тянет значок маркера, информацию о адресе, веб-ссылку и т. Д. И строит короткий код для визуализации карту на переднем конце. В настоящий момент строятся короткие коды и результат просматривается через модное окно tinyMCE.

Создание содержимого маркера карты (маркер информации пузырь) является то, что вызывает меня greif. Я хотел, чтобы пользователь мог добавлять или манипулировать содержимым этого блока, но чистый результат – это справедливая сумма разметки.

До сих пор я пытался передать сгенерированную разметку хотя один из атрибутов короткого кода, например:

[my_gmaps id="map" z="11" w="100%" h="300" scrollwheel="false" maptype="ROADMAP" address="Southampton, United Kingdom" marker="true" markerimage="http://img.wordpressask.com/shortcode/music_folk_map.png" infowindow="<div class="marker inside"><img class="marker icon" alt="" src="http://img.wordpressask.com/shortcode/geocode-71.png" /><strong>Southampton</strong><br>Southampton, UK<br><span class="marker extras">Some User Note</span></div><a class="marker jumplink" href="https://maps.google.com/maps/place?q=Southampton&amp;ftid=0x48738957be152909:0xa78c5a6a4cda71f0" target="_blank">external map</a>" ] 

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

Как передать эту информацию без редактирования редактора? Это где мне нужно изучить API переходных процессов или я должен рассмотреть другой подход?

Большое спасибо заранее за ваш опыт.

Solutions Collecting From Web of "прохождение разметки считало атрибут короткого кода"

У вас есть небольшая разметка для этого короткого кода. Попытка передать все это как короткий код будет проблемой. Я раздвинул его, чтобы посмотреть на него.

  1. ID = "карта"
  2. г = "11"
  3. ш = "100%"
  4. ч = "300"
  5. Колесико прокрутки = «ложь»
  6. MapType = "ДОРОЖНАЯ"
  7. адрес = "Саутгемптон, Соединенное Королевство"
  8. маркер = «истина»
  9. markerimage = " http://img.wordpressask.com/shortcode/music_folk_map.png "
  10. infowindow = " <div class="marker inside"><img class="marker icon" alt="" src="http://img.wordpressask.com/shortcode/geocode-71.png" /><strong>Southampton</strong><br>Southampton, UK<br><span class="marker extras">Some User Note</span></div><a class="marker jumplink" href="https://maps.google.com/maps/place?q=Southampton&amp;ftid=0x48738957be152909:0xa78c5a6a4cda71f0" target="_blank">external map</a> "

Вот как я подхожу к нему. Из ваших возможностей должно быть возможно динамически генерировать # 1, чтобы он мог идти. Я не могу вспомнить, что делает « z », поэтому мы пропустим его. # 4 и # 5 могут быть единственным значением, например « size », и использовать форматы « 150x150 », но это незначительно. Если плагин строит его, это, вероятно, не имеет большого значения. Если бы люди ожидали, что они напишут это в нем. Вы можете разрешить процентный размер, проверив «%». # 9, markerimage , могут быть жестко закодированы. Вы не ожидаете, что пользователи выбрали этот путь к файлу, верно? Поэтому я предполагаю, что это не изменится. Просто переключите его на основе 8-го marker . Любые другие статические элементы также должны быть жестко закодированы. Большинство из # 10 выглядит так, как будто он может быть жестко закодирован. Я не вижу необходимости пытаться передать всю эту разметку. Фактически, единственная переменная часть выглядит как, может быть, часть местоположения – ссылки на Саутгемптон, которую можно вытащить из № 7 и заполнить. С учетом этого ваш короткий код выглядит так:

 [my_gmaps z="11" size="100%x300" scrollwheel="false" maptype="ROADMAP" address="Southampton, United Kingdom" marker="true" ] 

Возможно, вам нужен способ редактировать пользователя «Some User Note». Поместите это в «код» короткого кода.

 [my_gmaps z="11" size="100%x300" scrollwheel="false" maptype="ROADMAP" address="Southampton, United Kingdom" marker="true" ] User notes [/my_gmaps] 

Остальное можно обработать при обработке короткого кода или, как мне кажется, он выглядит. Если вам нужна дополнительная конфигурация, чем я позволил попробовать передать ключевые элементы. Это 0x48738957be152909:0xa78c5a6a4cda71f0 , вместо этого https://maps.google.com/maps/place?q=Southampton&amp;ftid=0x48738957be152909:0xa78c5a6a4cda71f0 . Вы знаете, что часть этого будет оставаться неизменной – по крайней мере, эта часть, https://maps.google.com/ – не нужно передавать это.

В принципе, идея состоит в том, чтобы передавать только те части, которые меняются и вытесняют / жестко кодируют остальные, например, передавая параметры функции. Вы передаете необходимые части и позвольте функции строить / делать все остальное. Вы не передавали бы все функции и не имели бы функцию по сути просто конкатенировать параметры, верно? Легче всего конкатенировать параметры.

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

Мне любопытно, если ваш плагин создает этот короткий код, зачем вообще создавать короткие коды? Почему бы не подключиться к плагину, вместо этого вместо этого нужно создать рабочую карту?

Вероятно, безопаснее размещать содержимое HTML в качестве «содержимого» прилагаемого короткого кода , а не одного из «атрибутов»:

 [my_gmaps ...] HTML here [/my_gmaps] 

Затем получите доступ к этому блоку в качестве второго параметра функции короткого кода:

 function my_shortcode($attrs, $content) {} 

Еще одна возможность, с которой я умудрялся в моей ситуации, – это хеш- md5 для содержимого, передаваемого через короткий код, и сам плагин может его декодировать. У меня есть gui, который генерирует разметку у пользователей, о которых я не знаю заранее. Сначала хешируя его, я не сталкиваюсь с этой разметкой, нарушающей wordpresses text entry feild. Конечно, вы не ожидаете, что люди будут делать это в течение всего года. Чтобы быть приятным, я предлагаю альтернативный параметр, который позволяет легко осуществлять прямой ввод, но разделяет любую разметку.