Rank Math מאפשר לכם לבחור אילו סוגי תוכן ייכללו במפת האתר (XML Sitemap) באמצעות ההגדרה Include in Sitemap, שתמצאו תחת ״Rank Math SEO > Sitemap Settings > Post Types״.
כדי להחריג סוג תוכן ממפת האתר של Rank Math באמצעות קוד, השתמשו בפילטר rank_math/sitemap/exclude_post_type.
קוד עדיף על ההגדרה כאשר ההחלטה תלויה בתנאי מסוים, כאשר סוג התוכן נרשם על ידי תוסף או תבנית שאתם מפיצים, או כאשר אינכם רוצים שמישהו יפעיל את ההגדרה מחדש מלוח הבקרה.
אם אתם מעוניינים להעביר את מפת האתר עצמה לכתובת אחרת, עיינו בשינוי בסיס כתובת ה-URL של מפת האתר ב-Rank Math.
הקוד
הוסיפו את הקוד הבא לקובץ functions.php של תבנית הבת שלכם או לתוסף מותאם קטן:
/**
* Filter decision if post type is excluded from the XML sitemap.
*
* @param bool $exclude Default false.
* @param string $type Post type name.
*/
add_filter( 'rank_math/sitemap/exclude_post_type', function( $exclude, $type ){
if ( 'snippet' === $type ) {
return true;
}
return $exclude;
}, 10, 2 );
כיצד זה עובד
Rank Math מריץ את הפילטר עבור כל סוג תוכן שבו ההגדרה Include in Sitemap פעילה. הפילטר מקבל שני ארגומנטים: $exclude (ברירת מחדל false) ו-$type, כלומר שם סוג התוכן.
אם תחזירו true, קובץ מפת האתר של אותו סוג תוכן (למשל snippet-sitemap.xml) לא ייווצר עוד ולא יופיע באינדקס מפות האתר. עבור כל סוג תוכן אחר, החזירו את $exclude ללא שינוי, כדי שלא תדרסו קוד אחר שמשתמש באותו פילטר.
החליפו את 'snippet' בשם סוג התוכן שלכם. שימו לב, מדובר במזהה שמועבר ל-register_post_type(), ולא בשם (label) שמוצג בתפריט הניהול.
הפילטר יכול רק להסיר סוגי תוכן. הוא לא יכול להחזיר סוג תוכן שההגדרה Include in Sitemap שלו כבויה, מכיוון ש-Rank Math בודק את ההגדרה לפני שהוא מריץ את הפילטר.
כדי להחריג כמה סוגי תוכן בבת אחת, בדקו את שם סוג התוכן מול מערך:
add_filter( 'rank_math/sitemap/exclude_post_type', function( $exclude, $type ) {
$excluded = array( 'snippet', 'portfolio', 'testimonial' );
return in_array( $type, $excluded, true ) ? true : $exclude;
}, 10, 2 );
החרגת עמוד בודד במקום זאת
אם אתם רוצים להסיר רק עמוד או פוסט אחד ממפת האתר, אין צורך להחריג את כל סוג התוכן. Rank Math מציע שלוש דרכים לעשות זאת:
- הגדירו את ה-Robots Meta של העמוד ל-No Index בהגדרות Rank Math של אותו עמוד. כברירת מחדל, Rank Math משאיר תוכן noindex מחוץ למפת האתר.
- הוסיפו את ה-ID לשדה ״Sitemap Settings > General > Exclude Posts״ (מופרדים בפסיקים). זו אפשרות מתקדמת, כך שאם אינכם רואים את השדה, העבירו את Rank Math למצב Advanced Mode.
- השתמשו בפילטר
rank_math/sitemap/entryוהחזירוfalseעבור אותה כתובת.
הנה גרסת הקוד, שמסירה את הפוסטים 42 ו-108 מכל מפת אתר שאליה הם שייכים:
add_filter( 'rank_math/sitemap/entry', function( $url, $type, $object ) {
if ( 'post' === $type && in_array( (int) $object->ID, array( 42, 108 ), true ) ) {
return false;
}
return $url;
}, 10, 3 );
הערך של $type הוא post עבור כל סוגי התוכן (כולל עמודים), term עבור מונחים של טקסונומיות ו-user עבור כותבים. המירו את ה-ID למספר שלם: Rank Math קורא את השורות ישירות ממסד הנתונים, כך שה-ID מגיע כמחרוזת, והשוואה קפדנית (strict) לעולם לא תחזיר התאמה.
שני הפילטרים מופיעים ברשימת הפילטרים וההוקים של Rank Math.
כיצד לוודא שזה עבד
Rank Math שומר את מפות האתר שנוצרו ב-cache, כך שייתכן שתראו את הגרסה הישנה גם לאחר הוספת הפילטר. אם יש לכם WP-CLI, הפקודה הבאה מנקה את ה-cache ובונה את מפת האתר מחדש:
wp rankmath sitemap generate
לאחר מכן פתחו את אינדקס מפות האתר וודאו שמפת האתר של אותו סוג תוכן כבר לא מופיעה. אם האתר עובר דרך cache של עמודים או CDN, נקו גם אותם (אחרת ייתכן שאתם צופים בעותק שמור).
למידע נוסף על מה צריך להיכלל במפת האתר וכיצד לשלוח אותה, קראו את הפוסט כיצד ליצור ולשלוח מפת אתר לאתרי וורדפרס.
שאלות נפוצות
הנה כמה שאלות נפוצות על החרגת תוכן ממפת האתר של Rank Math:
rank_math/sitemap/exclude_post_type בכדי להסיר סוג תוכן, או בהגדרה Include in Sitemap תחת ״Sitemap Settings > Post Types״.
rank_math/sitemap/exclude_taxonomy. הוא עובד באותה צורה: הוא מקבל את $exclude ואת שם הטקסונומיה, והחזרת true מסירה את מפת האתר של אותה טקסונומיה.
wp rankmath sitemap generate, נקו את תוסף ה-cache או את ה-CDN, וודאו שהשם בקוד תואם בדיוק למזהה הרשום של סוג התוכן.