Итерация по массиву в WordPress с использованием шорткодов - PullRequest
0 голосов
/ 18 октября 2018

Я довольно новичок в WP, хотя я знаю, как писать базовые функции плагинов и создавать шорткоды.Я хочу, чтобы мой плагин возвращал массив (список избранного пользователя), но HTML должен быть определен в посте, а не в реализации шорткода.Поэтому я хочу сделать что-то вроде этого:

[user_favorites_fetch]
<table>
   [foreach user_favorite]
     <tr>
       <td>[foreach_index]</td>
       <td><a href="[foreach_var user_favorite.url]">[foreach_var user_favorite.title]</a></td>
     <tr>
   [/foreach]
</table>

Я знаю, как встроить HTML в определение шорткода user_favorites_fetch, но я бы предпочел разделить MVC и сохранить HTML всообщение.Я думаю Я могу реализовать функцию "foreach" в своем плагине в виде специализированного [user_favorite_foreach] шорткода, но я бы предпочел использовать встроенную функцию типа "foreach", если она есть.Я искал, но пока ничего не нашел, но, возможно, я не использую правильные ключевые слова.

Есть ли такая встроенная функция "foreach"?

1 Ответ

0 голосов
/ 19 октября 2018

С тех пор, как я разместил этот вопрос, я многое узнал о шорткодах.Кажется, нет встроенного способа сделать это.В итоге я действительно написал свой собственный «обёрточный» шорткод для итерации, например:

<table>
   [favorites_foreach]
     <tr>
       <td>[favorites field=index]</td>
       <td>[favorites_link][favorites field=title][/favorites_link]</td>
     <tr>
   [/favorites_foreach]
</table>

К сожалению, оказывается, что сложно добавить шорткод в атрибут HTML, и я не сталМне нравится компромисс, поэтому вместо шорткода, возвращающего ссылку, у меня есть шорткод, отображающий теги <a> ... </a> ссылки, включая href.Шорткоды favorites_foreach и favorites_link являются «оболочками», где им нужно запускать собственный контент через встроенную функцию WP do_shortcode для обработки шорткодов в своем контенте.

Это было приятнопростое решение, которое поддерживает разделение MVC, которое я хотел.

...