Немного интересный вопрос, который меня озадачивает, поэтому я знаю, как подсчитать, сколько раз шорткод вызывается на странице, используя счетчик stati c. Однако я хочу сбрасывать счетчик всякий раз, когда вызывается родительский шорткод:
<?php function gw_row($atts, $content = null) {
return '<div class="gw-row">'.do_shortcode($content).'</div>';
} add_shortcode("gw-row", "gw_row");
function gw_column($atts, $content = null) {
static $count = 0; $count++; if($count > 5){$count = 0}
return '<div class="column">'.do_shortcode( $content ).'</div>';
} add_shortcode("gw-column", "gw_column");?>
Итак, объясняя это далее, на странице будет несколько шорткодов [gw-row]
, это «Родительский шорткод». В этом шорткоде я использую [gw-column]
. Я хочу подсчитать, сколько столбцов используется на странице в каждом родительском шорткоде.
Пример:
[gw-row]
[gw-column]$Count = 1[/gw-column]
[gw-column]$Count = 2[/gw-column]
[/gw-row]
Reset $count
[gw-row]
[gw-column]$Count = 1[/gw-column]
[gw-column]$Count = 2[/gw-column]
[gw-column]$Count = 3[/gw-column]
[/gw-row]
Reset $count
Я думал о создании [gw-row]
объект и сброс $count
сразу после закрытия <div>
, что может сработать, но мне интересно, есть ли способ лучше?
Мои мысли:
<?php function gw_row($atts, $content = null) {
global $count;
ob_start();?>
<div class="gw-row">
<?php do_shortcode($content);?>
</div><?php $count = 0;?>
<?php return ob_clean();
} add_shortcode("gw-row", "gw_row");
function gw_column($atts, $content = null) {
$count++; if($count > 5){$count = 0}
return '<div class="column">'.do_shortcode( $content ).'</div>';
} add_shortcode("gw-column", "gw_column");?>