Как сделать подсчёт ListItem "position" в ld+json

Подскажите как сделать подсчёт ListItem "position", создание и генерация есть проблема состоит в том как подсчитать их количество от при добавлении нового ListItem в ld+json. За основу взята функция из Breadcrumb она подсчитывает количество

<nav aria-label="breadcrumb">

      <ol class="breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">

        <li class="breadcrumb-item" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
          <a itemprop="item" href="<?php echo $config["urlPath"]; ?>">
          <span itemprop="name"><?php echo $ULang->t("Главная"); ?></span></a>
          <meta itemprop="position" content="1">
        </li>

        <?php echo $data["breadcrumb"]; ?>

      </ol>

    </nav>

и сама функция подсчёта

function breadcrumb_count($content, $index = 2){

    preg_match_all ( '/<li.*?>(.*?)<\/li>/i' , $content , $matches); 
    if(count($matches[0]) > 0){
        foreach ($matches[0] as $key => $value) {
            $return .= str_replace(array("{INDEX}"),array($key + $index),$value);
        }
    }
    if($return) return $return; else return $content;
}

Функция breadcrumb_count подсчитывает количество созданных <li в breadcrumb

 preg_match_all ( '/**<li.*?>(.*?)<\/li>/i**' , $content , $matches);

Подскажите как сделать чтобы такая функция могла подсчитывать добавляемые в ld+json ListItem и выводила количество "position": ?,

<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "BreadcrumbList",
"itemListElement": [
    {
        "@type": "ListItem",
        "position": 1,
        "name": "<?php echo $ULang->t("Главная"); ?>/<?php echo getLang(); ?>",
        "item": "<?php echo $config["urlPath"]; ?>"
    },
    {
        "@type": "ListItem",
        "position": **?**,
        "name": "",
        "item": ""
    },
    {
        "@type": "ListItem",
        "position": **?**,
        "name": "",
        "item": ""
    }
]
}
</script>

Помогите пожалуйста проблема заключается только в подсчёте "position": 1, в строке функции function breadcrumb_count( создана такая же функция function breadcrumb_count_jsld)

 preg_match_all ( '/**<li.*?>(.*?)<\/li>/i**' , $content , $matches);

Нужно просто в function breadcrumb_count сделать или как это сделать чтобы был подсчет новых добавленных position в <script type="application/ld+json"> Для меня эта задача сложная , я не могу понять как это реализовать


Ответы (0 шт):