File "breadcrumb.php"
Full Path: /home/elegucvf/public_html/video/wp-content/wp-includes/wp-includes/wp-content/themes/atlas/functions/breadcrumb.php
File size: 7.11 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Breadcrumbs
*
* @package Atlas
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
if( ! function_exists( 'th90_breadcrumbs' ) ) {
function th90_breadcrumbs( $print = false ){
$home_text = esc_html__( 'Home', 'atlas' );
$breadcrumbs = array();
// WooCommerce breadcrumbs
if ( th90_woo_check_pages() ){
if ( $print ) {
echo woocommerce_breadcrumb( array(
'delimiter' => '',
'wrap_before' => '<ul id="breadcrumb" class="breadcrumbs">',
'wrap_after' => '</ul>',
'before' => '<li>',
'after' => '</li>',
'home' => esc_html__( 'Home', 'atlas' ),
) );
}
}
// WordPress breadcrumbs
elseif ( ! is_home() && ! is_front_page() ){
$post = get_post();
$home_url = esc_url(home_url( '/' ));
// Home
$breadcrumbs[] = array(
'url' => $home_url,
'name' => $home_text,
);
// Category
if ( is_category() ){
$category = get_query_var( 'cat' );
$category = get_category( $category );
if( $category->parent !== 0 ){
$parent_categories = array_reverse( get_ancestors( $category->cat_ID, 'category' ) );
foreach ( $parent_categories as $parent_category ) {
$breadcrumbs[] = array(
'url' => get_term_link( $parent_category, 'category' ),
'name' => get_cat_name( $parent_category ),
);
}
}
$breadcrumbs[] = array(
'name' => get_cat_name( $category->cat_ID ),
);
}
// Day
elseif ( is_day() ){
$breadcrumbs[] = array(
'url' => get_year_link( get_the_time( 'Y' ) ),
'name' => get_the_time( 'Y' ),
);
$breadcrumbs[] = array(
'url' => get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ),
'name' => get_the_time( 'F' ),
);
$breadcrumbs[] = array(
'name' => get_the_time( 'd' ),
);
}
// Month
elseif ( is_month() ){
$breadcrumbs[] = array(
'url' => get_year_link( get_the_time( 'Y' ) ),
'name' => get_the_time( 'Y' ),
);
$breadcrumbs[] = array(
'name' => get_the_time( 'F' ),
);
}
// Year
elseif ( is_year() ){
$breadcrumbs[] = array(
'name' => get_the_time( 'Y' ),
);
}
// Tag
elseif ( is_tag() ){
$breadcrumbs[] = array(
'name' => get_the_archive_title(),
);
}
// Author
elseif ( is_author() ){
$author = get_query_var( 'author' );
$author = get_userdata($author);
$breadcrumbs[] = array(
'name' => $author->display_name,
);
}
// Search
elseif ( is_search() ){
$breadcrumbs[] = array(
'name' => sprintf( esc_html__( 'Search Results: %s', 'atlas' ), get_search_query() ),
);
}
// 404
elseif ( is_404() ){
$breadcrumbs[] = array(
'name' => esc_html__( 'Nothing Found', 'atlas' ),
);
}
# Pages ----------
elseif ( is_page() ){
if ( $post->post_parent ){
$parent_id = $post->post_parent;
$page_parents = array();
while ( $parent_id ){
$get_page = get_page( $parent_id );
$parent_id = $get_page->post_parent;
$page_parents[] = array(
'url' => get_permalink( $get_page->ID ),
'name' => strip_tags( get_the_title( $get_page->ID ) ),
);
}
$page_parents = array_reverse( $page_parents );
foreach( $page_parents as $single_page ){
$breadcrumbs[] = array(
'url' => $single_page['url'],
'name' => $single_page['name'],
);
}
}
$breadcrumbs[] = array(
'name' => strip_tags( wp_trim_words( get_the_title(), 3 ) ),
);
}
// Attachment
elseif ( is_attachment() ){
if( ! empty( $post->post_parent ) ){
$parent = get_post( $post->post_parent );
$breadcrumbs[] = array(
'url' => get_permalink( $parent ),
'name' => $parent->post_title,
);
}
$breadcrumbs[] = array(
'name' => strip_tags( wp_trim_words( get_the_title(), 3 ) ),
);
}
// Single Posts
elseif ( is_singular() ){
// Single Post
if ( get_post_type() == 'post' ){
$category = th90_get_primary_category_id();
if( ! empty( $category ) ){
$category = get_category( $category );
if( $category->parent !== 0 ){
$parent_categories = array_reverse( get_ancestors( $category->term_id, 'category' ) );
foreach ( $parent_categories as $parent_category ) {
$breadcrumbs[] = array(
'url' => get_term_link( $parent_category, 'category' ),
'name' => get_cat_name( $parent_category ),
);
}
}
$breadcrumbs[] = array(
'url' => get_term_link( $category->term_id, 'category' ),
'name' => get_cat_name( $category->term_id ),
);
}
}
// Single custom Post type
else{
// Get the main Post type archive link
if( $archive_link = get_post_type_archive_link( get_post_type() ) ){
$post_type = get_post_type_object( get_post_type() );
$breadcrumbs[] = array(
'url' => $archive_link,
'name' => $post_type->labels->singular_name,
);
}
// Get custom Post Types taxonomies
$taxonomies = get_object_taxonomies( $post, 'objects' );
if( ! empty( $taxonomies ) && is_array( $taxonomies ) ){
foreach( $taxonomies as $taxonomy ){
if( $taxonomy->hierarchical ){
$taxonomy_name = $taxonomy->name;
break;
}
}
}
if( ! empty( $taxonomy_name ) ){
$custom_terms = get_the_terms( $post, $taxonomy_name );
if( ! empty( $custom_terms ) && ! is_wp_error( $custom_terms )){
foreach ( $custom_terms as $term ){
$breadcrumbs[] = array(
'url' => get_term_link( $term ),
'name' => $term->name,
);
break;
}
}
}
}
$breadcrumbs[] = array(
'name' => strip_tags( get_the_title() ),
);
}
// Print the BreadCrumb
if( ! empty( $breadcrumbs ) ){
$counter = 0;
$breadcrumbs_schema = array(
'@context' => 'https://schema.org',
'@type' => 'BreadcrumbList',
'@id' => '#breadcrumb',
'itemListElement' => array(),
);
if ( $print ) {
echo '<ul id="breadcrumb" class="breadcrumbs">';
foreach( $breadcrumbs as $item ) {
$counter++;
if( ! empty( $item['url'] )){
echo '<li><a href="'. esc_url( $item['url'] ) .'">'. $item['name'] .'</a></li>';
}
else{
echo '<li class="current">' . $item['name'] . '</li>';
}
}
echo '</ul>';
} else {
foreach( $breadcrumbs as $item ) {
$counter++;
if ( ! empty( $item['url'] ) ) {
$breadcrumbs_schema['itemListElement'][] = array(
'@type' => 'ListItem',
'position' => $counter,
'name' => $item['name'],
'item' => esc_url( $item['url'] ),
);
} else {
$breadcrumbs_schema['itemListElement'][] = array(
'@type' => 'ListItem',
'position' => $counter,
'name' => $item['name'],
);
}
}
echo '<script type="application/ld+json">'. wp_json_encode( $breadcrumbs_schema ) .'</script>';
}
}
}
wp_reset_postdata();
}
}