Intereting Posts
Значение строки запроса Отображение конкретных продуктов WooCommerce для разных типов пользователей Содержимое WordPress Wysiwyg не отображается Почему switch_to_blog перестает работать? Загрузите шаблон страницы с помощью настраиваемого содержимого с помощью плагина Ограничить редактирование, но разрешить предварительный просмотр пользовательского состояния сообщения Почему сеанс входа в WordPress ограничен одним доменом Что может удалить мои переадресации из моего htaccess? Удалить 'wp-content / themes / themename /' из пути к изображению Как сохранить информацию о плагине? Permalink перестали работать после миграции с плагином миграции WP all-in-one Создание привязки из редактора Wysiwyg WordPress переписывает мой URL-адрес, когда я использую разбиение на страницы HTML в пунктах меню исчезает при сохранении Как отображать последние 3 сообщения (последние сообщения) на статической странице?

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

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

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

У меня есть плагин 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. Конечно, вы не ожидаете, что люди будут делать это в течение всего года. Чтобы быть приятным, я предлагаю альтернативный параметр, который позволяет легко осуществлять прямой ввод, но разделяет любую разметку.