Доступ к переносу содержимого шорткода Wordpress из другого шорткода - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть два плагина.Используемый основной плагин предоставляет информацию о магазине и плагин инвентаря, который извлекает инвентарь из любого данного хранилища в базе данных.

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

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

Вроде какthis

[store store_id = "some store id"]
    [inventory]
[/store]

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

1 Ответ

0 голосов
/ 21 февраля 2019

Самый простой вариант - передать идентификатор хранилища родительского тега во вложенный тег и сделать в инвентаре то, что вам нужно, что зависит от магазина.

Итак, основываясь на хорошем прочтении этой статьи (https://www.sitepoint.com/wordpress-nested-shortcodes/) Я бы предложил такое решение:

Пример с идентификатором Вы добавляете необязательный параметр для тега инвентаря - store_id и устанавливаете его в контент, например,{store_id}.

В кратком коде / плагине магазина вы замените {store_id} текущим идентификатором магазина и оцените содержание короткого кода с помощью do_shortcode (). (так, как выреализовать свои собственные короткие коды :))

В содержании сообщения

[store store_id = "some store id"]
    [inventory store_id={store_id}]
[/store]

В магазине плагин / короткий код:

$content = str_replace($content, '{store_id}', $myCurrentStoreId);
return do_shortcode($content);

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

Документы WP - код_документа: https://developer.wordpress.org/reference/functions/do_shortcode/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...