Căutați o modalitate de a adăuga breadcrumbs și de a le afișa în WordPress? Deși probabil există un plugin pentru asta, am creat o scurtă secțiune de cod pe care o puteți folosi pentru a adăuga breadcrumbs în WordPress.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
function dimox_breadcrumbs() {
$delimiter = '»';
$name = 'Home'; //text for the 'Home' link
$currentBefore = '<span class="current">';
$currentAfter = '</span>';
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '<div id="crumbs">';
global $post;
$home = get_bloginfo('url');
echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $currentBefore . 'Archive by category '';
single_cat_title();
echo ''' . $currentAfter;
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('d') . $currentAfter;
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('F') . $currentAfter;
} elseif ( is_year() ) {
echo $currentBefore . get_the_time('Y') . $currentAfter;
} elseif ( is_single() && !is_attachment() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && !$post->post_parent ) {
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_search() ) {
echo $currentBefore . 'Search results for '' . get_search_query() . ''' . $currentAfter;
} elseif ( is_tag() ) {
echo $currentBefore . 'Posts tagged '';
single_tag_title();
echo ''' . $currentAfter;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;
} elseif ( is_404() ) {
echo $currentBefore . 'Error 404' . $currentAfter;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</div>';
}
}
Adăugați acest cod în fișierul șablon al temei dvs. unde doriți să afișați breadcrumbs.
<?php
if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs();
?>
Alternativ, puteți folosi această secțiune de cod mai scurtă, similară. Adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:
function the_breadcrumb() {
echo '<ul id="crumbs">';
if (!is_home()) {
echo '<li><a href="';
echo get_option('home');
echo '">';
echo 'Home';
echo "</a></li>";
if (is_category() || is_single()) {
echo '<li>';
the_category(' </li><li> ');
if (is_single()) {
echo "</li><li>";
the_title();
echo '</li>';
}
} elseif (is_page()) {
echo '<li>';
echo the_title();
echo '</li>';
}
}
elseif (is_tag()) {single_tag_title();}
elseif (is_day()) {echo"<li>Archive for "; the_time('F jS, Y'); echo'</li>';}
elseif (is_month()) {echo"<li>Archive for "; the_time('F, Y'); echo'</li>';}
elseif (is_year()) {echo"<li>Archive for "; the_time('Y'); echo'</li>';}
elseif (is_author()) {echo"<li>Author Archive"; echo'</li>';}
elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {echo "<li>Blog Archives"; echo'</li>';}
elseif (is_search()) {echo"<li>Search Results"; echo'</li>';}
echo '</ul>';
}
Puteți adăuga acest cod în fișierul single.php sau page.php pentru a afișa meniul breadcrumbs.
<?php the_breadcrumb(); ?>
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut această secțiune de cod, vă rugăm să luați în considerare citirea altor articole de pe site, cum ar fi: 9 cele mai bune plugin-uri de acordeon pentru WordPress și cum să creați un formular de contact.
Salut
Cum pot include paginile create din plugin-uri am folosit funcția dimox_breadcrumbs().
Paginile mele din plugin sunt de la Give Donation și Newsletter plugin
Mulțumesc, acest cod ajută cu adevărat!
Am cercetat cum să adaug o pagină la breadcrumbs-urile dvs. Bine, de exemplu, am o pagină numită Portocală și o categorie de postări numită portocală, acestea sunt conectate. Cum creați un breadcrumb ca acesta:
Acasă / Portocală (pagină) / Titlul postării (postare)
Ei pot apoi să dea clic pe pagina Portocală pentru a vedea mai multe postări de citit.
Fiecare pagină are un text. Apoi adaug o vizualizare a postării curente pentru acel subiect al paginii.
Vreau să poată reveni la pagina de pornire de unde au găsit postarea curentă.
Mă puteți ajuta? Vă mulțumesc pentru timpul acordat.
Tutorial excelent despre cum să implementați o funcție de breadcrumb în loc să vă bazați pe plugin-uri.. oricum, acest lucru poate fi îmbunătățit mult mai bine prin inserarea de date structurate pentru breadcrumb..
Acest lucru este grozav și foarte util. Am adăugat câteva tipuri de postări personalizate și acest script se defectează pe acele șabloane. Ați putea ajuta cu o adăugare pentru tipurile de postări personalizate? Mulțumesc!
Ați putea, vă rog, să ajutați cu o versiune care include marcaje schema.org?
Mulțumesc pentru asta!
Doar o notă rapidă: ați omis {} în