הפילטר wpseo_breadcrumb_links מאפשר לכם להוסיף פריטים, להסיר פריטים או לשנות את הסדר שלהם בפירורי הלחם של Yoast SEO. דוגמה נפוצה היא הוספת קישור לבלוג מיד אחרי הקישור לעמוד הבית בעמודי פוסט בודד, כך שהתוצאה תהיה: Home › Blog › Post title.
אם אתם רוצים להסיר את הנתונים המובנים של פירורי הלחם, ראו את הסרת סכמת פירורי הלחם ב-Yoast. כדי לבטל את סכמת Yoast כולה, ראו ביטול סכמת Yoast SEO.
הקוד
הוסיפו את הקוד לקובץ functions.php בתבנית הבת שלכם או לתוסף ייעודי. עדכנו את הכתובת ואת הטקסט כך שיתאימו לעמוד הבלוג שלכם:
function yoast_seo_breadcrumb_append_link( $links ) {
if ( ! is_singular( 'post' ) ) {
return $links;
}
$breadcrumb[] = array(
'url' => home_url( '/blog/' ),
'text' => 'Blog',
);
array_splice( $links, 1, 0, $breadcrumb );
return $links;
}
add_filter( 'wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link' );
כיצד זה עובד
Yoast מעביר את כל מערך פירורי הלחם אל הפילטר wpseo_breadcrumb_links, רגע לפני שהוא מציג אותם. אינדקס 0 הוא הקישור לעמוד הבית, והפריט האחרון הוא העמוד הנוכחי.
כל פריט הוא מערך עם url ו-text. בנוסף, Yoast מוסיף מפתח שמזהה את סוג הפריט: id לפוסטים ולעמודים, term_id ו-taxonomy למונחים, ו-ptarchive לארכיוני סוגי תוכן.
הקריאה array_splice( $links, 1, 0, $breadcrumb ) מכניסה את הפריט החדש במיקום 1, מיד אחרי עמוד הבית, בלי להסיר שום פריט. הארגומנט השלישי חייב להיות 0. כל ערך אחר (למשל -2) ימחק בלי התרעה פריטים מרשימות פירורי לחם ארוכות יותר.
התנאי is_singular( 'post' ) מגביל את השינוי לפוסטים בלבד. בלעדיו, הקישור לבלוג יופיע גם בעמוד הבית, בעמודים רגילים ובארכיונים.
אותו מערך משמש גם לפירורי הלחם הגלויים וגם לסכמת ה-BreadcrumbList של Yoast, כך שהפריט החדש יופיע גם בנתונים המובנים.
בדקו קודם את ההגדרה המובנית
אם עמוד הבית שלכם מוגדר כעמוד סטטי והגדרתם ״Posts page״ תחת ״הגדרות > קריאה״, יכול להיות שלא תצטרכו קוד בכלל.
תחת ״Yoast SEO > Settings > Advanced > Breadcrumbs״, ההגדרה Show blog page in breadcrumbs מוסיפה את אותו עמוד לפירורי הלחם בפוסטים בודדים.
השתמשו בפילטר כשאין עמוד פוסטים (למשל, עמוד בלוג שנבנה כתבנית עמוד מותאמת), או כשאתם צריכים קישור שההגדרות אינן מציעות.
דוגמאות נוספות ל-wpseo_breadcrumb_links
הגרסה הבאה מוסיפה עמוד מרכזי (hub) לפני הפריט הנוכחי בסוג תוכן מותאם. היסט (offset) שלילי נספר מהסוף, כך ש--1 ממקם אותו מיד לפני הפריט האחרון:
add_filter( 'wpseo_breadcrumb_links', function( $links ) {
if ( ! is_singular( 'snippet' ) ) {
return $links;
}
$new_crumb = array(
array(
'url' => home_url( '/resources/' ),
'text' => 'Resources',
),
);
array_splice( $links, -1, 0, $new_crumb );
return $links;
} );
הדוגמה הבאה מסירה את פריטי הקטגוריה מפירורי הלחם:
add_filter( 'wpseo_breadcrumb_links', function( $links ) {
foreach ( $links as $i => $link ) {
if ( isset( $link['taxonomy'] ) && 'category' === $link['taxonomy'] ) {
unset( $links[ $i ] );
}
}
return array_values( $links );
} );
כמה כללים לשימוש בטוח בפילטר:
- החזירו תמיד מערך. Yoast מתעלם מכל ערך אחר ורושם הודעת ״doing it wrong״.
- הקפידו שלכל פריט יהיו גם
urlוגםtext. אם אחד מהם חסר, Yoast לא ידפיס את סכמת ה-BreadcrumbList באותו עמוד. - Yoast מדפיס את
textכפי שהוא, לכן עטפו ערכים דינמיים כמו כותרות פוסטים ב-esc_html().
לסקירה רחבה יותר על אפשרויות פירורי הלחם, קראו את הפוסט כיצד להוסיף פירורי לחם לאתרי וורדפרס. הפילטר עצמו מוגדר בקובץ ה-breadcrumbs generator בקוד המקור של Yoast.
שאלות נפוצות
הנה כמה שאלות נפוצות על הפילטר wpseo_breadcrumb_links:
wpseo_breadcrumb_single_link ו-wpseo_breadcrumb_output משנים רק את ה-HTML.
[wpseo_breadcrumb]. בקבצי תבנית PHP השתמשו ב-yoast_breadcrumb( '<p id="breadcrumbs">', '</p>' ), שמדפיס רק כאשר ההגדרה ״Enable breadcrumbs for your theme״ פעילה או כאשר התבנית מצהירה על תמיכה בפירורי הלחם. הפילטר חל על כל האפשרויות האלו.
is_singular( 'post' ) לא תרוץ בעמודים), שהפונקציה מחזירה את $links, ונקו את ה-cache של העמודים. כמו כן, ודאו שפירורי הלחם בעמוד אכן מגיעים מ-Yoast ולא מהתבנית או מ-WooCommerce.