סקירת התקלה
בעת שימוש ב־RankMath SEO או ב־Yoast SEO יחד עם התוסף הנלווה שלנו, WPML SEO, ייתכן שתיתקל בערכי hreflang שגויים במפת האתר. במקום להשתמש בערכי ה־hreflang שהוגדרו בהגדרות השפה של WPML, מפת האתר משתמשת בקוד השפה (לדוגמה, nz, au) במקום בקוד המלא המצופה (לדוגמה, en-nz, en-au).
פתרון עוקף
בעיה זו תוקנה ב־WPML SEO 2.2.3. עדכון פותר זאת באתר שלך, לכן אתה זקוק לפתרון העוקף הזה רק אם עדיין אינך יכול לעדכן.
אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.
- פתח את הקובץ …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- חפש את שורה 180.
- החלף:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />'; }; - ב:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { $languages = apply_filters( 'wpml_active_languages', null, [] ); $hreflang = isset( $languages[ $lang ]['tag'] ) ? $languages[ $lang ]['tag'] : $lang; return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $hreflang ) . '" href="' . esc_url( $url ) . '" />'; };