Я видел несколько похожих вопросов-ответов, но мне пока не удалось добиться цели. Некоторые люди, которые советуют вам выгрузить массив с запятой, но я не знаю, как реализовать выгрузку в этом конкретном случае (даже если это возможно).
Я попытался пойти по самому простому пути и просто удалить 12-й символ отображаемого html (эта чертова запятая), но я не смог сохранить саму функцию в переменной.
Буду признателен за любую помощь, спасибо!
<?php
function jsonbreadcrumbs($home = 'Home') {
$itemNumber = 1;
$jsonbreadcrumb .= '<script type="application/ld+json">';
$jsonbreadcrumb .= '{';
$jsonbreadcrumb .= '"@context": "http://schema.org",';
$jsonbreadcrumb .= '"@type": "BreadcrumbList",';
$root_domain = ($_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'].'/';
$jsonbreadcrumbs = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
$jsonbreadcrumb .= '"itemListElement": [{';
$jsonbreadcrumb .= '"@type": "ListItem",';
$jsonbreadcrumb .= '"position":' .$itemNumber++.',';
$jsonbreadcrumb .= "\"name\": \"{$home}\",";
$jsonbreadcrumb .= "\"item\": \"{$root_domain}\"},";
foreach ($jsonbreadcrumbs as $crumb) {
$link = ucwords(str_replace(array(".php","-","_"), array(""," "," "), $crumb));
$root_domain .= $crumb . '/';
$jsonbreadcrumb .= '{"@type": "ListItem",';
$jsonbreadcrumb .= '"position":' . $itemNumber++ . ',';
$jsonbreadcrumb .= "\"name\": \"{$link}\",";
$jsonbreadcrumb .= "\"item\": \"{$root_domain}\"},";//<---this last comma,when it belongs to the last item, needs to be removed.
}
$jsonbreadcrumb .= ']}</script>';
return $jsonbreadcrumb;
}
echo jsonbreadcrumbs();
?>
Просто отделка() это с вашим собственным списком персонажей
foreach ($jsonbreadcrumbs as $crumb) {
$link = ucwords(str_replace(array(".php","-","_"), array(""," "," "), $crumb));
$root_domain .= $crumb . '/';
$jsonbreadcrumb .= '{"@type": "ListItem",';
$jsonbreadcrumb .= '"position":' . $itemNumber++ . ',';
$jsonbreadcrumb .= "\"name\": \"{$link}\",";
$jsonbreadcrumb .= "\"item\": \"{$root_domain}\"},";//<---this last comma,when it belongs to the last item, needs to be removed.
}
$jsonbreadcrumb=trim($jsonbreadcrumb,","); // this removes that trailing comma...
$jsonbreadcrumb .= ']}</script>';
Других решений пока нет …