
Dodaje do strony dane uporządkowane breadcrumbs dla Wordpressa.
function knight_schema_breadcrumbs() { global $post,$wp_query; if ( !is_front_page() ) { $position1=''; $position2=''; $position3=''; $position4=''; $position1 ='{"@type": "ListItem","position": 1,"name": "Home","item": "'.get_home_url() .'" },'; if ( is_archive() && !is_tax() && !is_category() && !is_tag() && !is_author() ) { $position2 ='{"@type": "ListItem","position": 2,"name": "'.post_type_archive_title($prefix, false).'"}'; } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) { $post_type = get_post_type(); if($post_type != 'post') { $post_type_object = get_post_type_object($post_type); $post_type_archive = get_post_type_archive_link($post_type); $position2 ='{"@type": "ListItem","position": 2,"name": "'.$post_type_object->labels->name.'","item": "'.$post_type_archive.'" },'; } $custom_tax_name = get_queried_object()->name; $position3='{"@type": "ListItem","position": 3,"name": "'.$custom_tax_name.'"}'; } else if ( is_single() ) { $post_type = get_post_type(); if($post_type != 'post') { $post_type_object = get_post_type_object($post_type); $post_type_archive = get_post_type_archive_link($post_type); if($post_type == 'kblog'){$post_type_archive = 'https://teamjj.pl/blog';} $position2 ='{"@type": "ListItem","position": 2,"name": "'.$post_type_object->labels->name.'","item": "'.$post_type_archive.'" },'; //custom post blog if($post_type == 'kblog'){$custom_taxonomy = 'blogcategory';} } $category = get_the_category(); $categories2 = get_the_category(); if(!empty($category)) { $last_category = end(array_values($category)); $get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','),','); $cat_parents = explode(',',$get_cat_parents); foreach( $categories2 as $category ) { $position2 ='{"@type": "ListItem","position": 2,"name": "'.$category->name.'","item": "'.get_category_link( $category->term_id ).'" },'; } } $taxonomy_exists = taxonomy_exists($custom_taxonomy); if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) { $taxonomy_terms = get_the_terms( $post->ID, $custom_taxonomy ); $cat_id = $taxonomy_terms[0]->term_id; $cat_nicename = $taxonomy_terms[0]->slug; $cat_link = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy); $cat_name = $taxonomy_terms[0]->name; } if(!empty($last_category)) { $position3='{"@type": "ListItem","position": 3,"name": "'.get_the_title().'"}'; } else if(!empty($cat_id)) { $position3 ='{"@type": "ListItem","position": 3,"name": "'.$cat_name.'","item": "'.$cat_link .'" },'; $position4='{"@type": "ListItem","position": 4,"name": "'.get_the_title().'"}'; } else { $position3='{"@type": "ListItem","position": 3,"name": "'.get_the_title().'"}'; } } else if ( is_category() ) { $position2 ='{"@type": "ListItem","position": 2,"name": "'.single_cat_title('', false) .'"}'; } else if ( is_page() ) { if( $post->post_parent ){ $anc = get_post_ancestors( $post->ID ); $anc = array_reverse($anc); if ( !isset( $parents ) ) $parents = null; foreach ( $anc as $ancestor ) { $position2 ='{"@type": "ListItem","position": 2,"name": "'.get_the_title($ancestor).'","item": "'.get_permalink($ancestor) .'" },'; } $position3 ='{"@type": "ListItem","position": 3,"name": "'.get_the_title().'"}'; } else { $position2 ='{"@type": "ListItem","position": 2,"name": "'.get_the_title().'"}'; } } else if ( is_author() ) { global $author; $userdata = get_userdata( $author ); $position2 ='{"@type": "ListItem","position": 2,"name": "'.$userdata->display_name.'"}'; } $out .= '<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": ['.$position1 . $position2 . $position3 . $position4.'] } </script>'; echo $out; } } add_action('wp_head', 'knight_schema_breadcrumbs');
Więcej optymalizacji w kategorii wordpress