| Current Path : /home/x/b/o/xbodynamge/namtation/wp-content/ |
| Current File : /home/x/b/o/xbodynamge/namtation/wp-content/BreadcrumbList.php.tar |
namtation/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/BreadcrumbList.php 0000644 00000004205 15113766377 0031046 0 ustar 00 home/xbodynamge <?php
namespace AIOSEO\Plugin\Common\Schema\Graphs;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* BreadcrumbList graph class.
*
* @since 4.0.0
*/
class BreadcrumbList extends Graph {
/**
* Returns the graph data.
*
* @since 4.0.0
*
* @return array The graph data.
*/
public function get() {
$breadcrumbs = aioseo()->breadcrumbs->frontend->getBreadcrumbs() ?? '';
if ( ! $breadcrumbs ) {
return [];
}
// Set the position for each breadcrumb.
foreach ( $breadcrumbs as $k => $breadcrumb ) {
if ( ! isset( $breadcrumb['position'] ) ) {
$breadcrumbs[ $k ]['position'] = $k + 1;
}
}
$trailLength = count( $breadcrumbs );
if ( ! $trailLength ) {
return [];
}
$listItems = [];
foreach ( $breadcrumbs as $breadcrumb ) {
if ( empty( $breadcrumb['link'] ) ) {
continue;
}
$listItem = [
'@type' => 'ListItem',
'@id' => $breadcrumb['link'] . '#listItem',
'position' => $breadcrumb['position'],
'name' => $breadcrumb['label'] ?? ''
];
// Don't add "item" prop for last crumb.
if ( $trailLength !== $breadcrumb['position'] ) {
$listItem['item'] = $breadcrumb['link'];
}
if ( 1 === $trailLength ) {
$listItems[] = $listItem;
continue;
}
if ( $trailLength > $breadcrumb['position'] && ! empty( $breadcrumbs[ $breadcrumb['position'] ]['label'] ) ) {
$listItem['nextItem'] = [
'@type' => 'ListItem',
'@id' => $breadcrumbs[ $breadcrumb['position'] ]['link'] . '#listItem',
'name' => $breadcrumbs[ $breadcrumb['position'] ]['label'],
];
}
if ( 1 < $breadcrumb['position'] && ! empty( $breadcrumbs[ $breadcrumb['position'] - 2 ]['label'] ) ) {
$listItem['previousItem'] = [
'@type' => 'ListItem',
'@id' => $breadcrumbs[ $breadcrumb['position'] - 2 ]['link'] . '#listItem',
'name' => $breadcrumbs[ $breadcrumb['position'] - 2 ]['label'],
];
}
$listItems[] = $listItem;
}
$data = [
'@type' => 'BreadcrumbList',
'@id' => aioseo()->schema->context['url'] . '#breadcrumblist',
'itemListElement' => $listItems
];
return $data;
}
} xbodynamge/dev/wp-content/plugins/all-in-one-seo-pack/app/Common/Schema/Graphs/BreadcrumbList.php 0000644 00000004205 15114332717 0027616 0 ustar 00 home <?php
namespace AIOSEO\Plugin\Common\Schema\Graphs;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* BreadcrumbList graph class.
*
* @since 4.0.0
*/
class BreadcrumbList extends Graph {
/**
* Returns the graph data.
*
* @since 4.0.0
*
* @return array The graph data.
*/
public function get() {
$breadcrumbs = aioseo()->breadcrumbs->frontend->getBreadcrumbs() ?? '';
if ( ! $breadcrumbs ) {
return [];
}
// Set the position for each breadcrumb.
foreach ( $breadcrumbs as $k => $breadcrumb ) {
if ( ! isset( $breadcrumb['position'] ) ) {
$breadcrumbs[ $k ]['position'] = $k + 1;
}
}
$trailLength = count( $breadcrumbs );
if ( ! $trailLength ) {
return [];
}
$listItems = [];
foreach ( $breadcrumbs as $breadcrumb ) {
if ( empty( $breadcrumb['link'] ) ) {
continue;
}
$listItem = [
'@type' => 'ListItem',
'@id' => $breadcrumb['link'] . '#listItem',
'position' => $breadcrumb['position'],
'name' => $breadcrumb['label'] ?? ''
];
// Don't add "item" prop for last crumb.
if ( $trailLength !== $breadcrumb['position'] ) {
$listItem['item'] = $breadcrumb['link'];
}
if ( 1 === $trailLength ) {
$listItems[] = $listItem;
continue;
}
if ( $trailLength > $breadcrumb['position'] && ! empty( $breadcrumbs[ $breadcrumb['position'] ]['label'] ) ) {
$listItem['nextItem'] = [
'@type' => 'ListItem',
'@id' => $breadcrumbs[ $breadcrumb['position'] ]['link'] . '#listItem',
'name' => $breadcrumbs[ $breadcrumb['position'] ]['label'],
];
}
if ( 1 < $breadcrumb['position'] && ! empty( $breadcrumbs[ $breadcrumb['position'] - 2 ]['label'] ) ) {
$listItem['previousItem'] = [
'@type' => 'ListItem',
'@id' => $breadcrumbs[ $breadcrumb['position'] - 2 ]['link'] . '#listItem',
'name' => $breadcrumbs[ $breadcrumb['position'] - 2 ]['label'],
];
}
$listItems[] = $listItem;
}
$data = [
'@type' => 'BreadcrumbList',
'@id' => aioseo()->schema->context['url'] . '#breadcrumblist',
'itemListElement' => $listItems
];
return $data;
}
}