Я знаю, что есть способ сделать это, однако мне трудно понять это. Вот моя проблема.
У меня есть шорткод, который запускает функцию, которая приносит в магазин инвентарь. Я форматирую данные, которые возвращаются с HTML. Мой плагин делает это уже используя следующий шорткод ['inventory']
То, что я хотел бы сделать, находится в той же функции, если это возможно, я хотел бы создать еще несколько коротких кодов, таких как [product_id]
И, надеюсь, из той же функции поместите текущие записи product_id в значение этого шорткода, пока я перебираю записи.
А также использовать некоторые элементы темы WordPress в сочетании с шорткодом.
Допустим, шорткод инвентаря возвращает следующее
<div>
<h1>Product ID {$product_id}</h1>
<p>Price $price</p>
</div>
и циклически просматривает каждый продукт, так что если будет 4 продукта, он выведет вышеуказанный HTML 4 раза.
Используемая мной тема позволяет мне создавать кнопки, специфичные для моей темы, я не хочу жестко кодировать эти кнопки в своем коде.
Я хочу сделать следующее:
[inventory]
['record']
//Insert theme buttons using themes builder
<button value=['product_id']>Get more info</button>
['/record]
[/inventory]
Итак, я хотел бы иметь инвентарь, сгенерировать данные для вывода, но вместо циклического прохождения и вывода идентификатора, например, циклически проходить и передавать данные в шорткод ['record'], а затем иметь это тег отображает вывод кнопками под каждой записью. И присвойте значению кнопки шорткод product_id, который будет содержать текущий идентификатор продукта записи.
Я хочу сказать, что задействован do_shortcode, но я не совсем уверен, как этого добиться.
Любая помощь приветствуется
Я попытался прочитать документацию.
function inventory($atts, $content = null){
extract(shortcode_atts(array(
'storeid' => 'default',
), $atts));
//query that returns the store inventory
$query;
//Output formatted results FYI there is a whole function that but it pretty much just loops through the $query results.
foreach($query as $queryResult){
echo $queryResult;
}
}
add_shortcode('inventory', 'inventory');
<div>
<h1>Product ID {$product_id}</h1>
<p>Price $price</p>
</div>
<button value="apple">Get More Info</button>
Подробнее
Итак, у меня есть проект, над которым я работаю, но мне трудно сосредоточиться на том, как работать с вложенными шорткодами.
Вот что у меня есть
[inventory store=some_store_id category=fruit]
Этот шорткод в настоящее время возвращает из базы данных следующее [[0]="product_id"=>['name'=>'apple', 'price'=>'2.00'],[1]="another_product_id"=>['name'=>'apple', 'price'=>'2.00']]
Мне бы хотелось что-то подобное
<div>
[inventory store=some_store_id category=fruit]
[individual_product]
<div>
<h1>[product_id]</h1>
</div>
<div><h2>[name]</h2></div>
<div><p>[price]</p></div>
[/individual_product]
[/inventory]
</div>