- סטטוס
- נפתר
- דווח עבור
- WPML Multilingual CMS 3.3.6
- נפתר בגרסה
- 3.3.6
סקירה כללית של התקלה
תגי המטא hreflang עשויים להיות חסרים בכותרת העמוד. זה קורה החל מ־WPML 3.3.6, בשילוב עם תבניות או תוספים שטוענים את WPML מוקדם מדי.
WPML אמור לכלול תגי <link hreflang=”lang”> באזור הכותרת של האתר שלך. זה חסר בחלק מהאתרים שמשתמשים ב־WPML 3.3.6 ובשילוב עם תוספים או תבניות מסוימים. הבעיה מתרחשת מכיוון ש־WPML מנסה להוסיף את התגים האלה בשלב מוקדם בכותרת, אך תוספים אחרים גורמים לתנאי מרוץ (race condition), מה שמפעיל את WPML מוקדם מדי. ייתכן שתקבל אימייל מ־Google Webmaster tool, שאומר “Incorrect hreflang implementation”.
התיאור המלא של פונקציונליות זו מופיע בהנחיות התוכן של Google עבור כתובות URL של שפות ואזורים.
פתרון עוקף
כדי לתקן זאת ב־WPML 3.3.6:
- פתח את הקובץ
sitepress-multilingual-cms/sitepress.class.php - גלול למטה לתחתית הקובץ הזה, שם עליך לראות את זה:

- החלף את השורה הזו:
add_action( 'wp_head', array( $this, 'head_langs' ), 1 ); - בזה:
add_action( 'wp_head', array( $this, 'head_langs' ) ); - הגרסה הסופית של הקוד הזה צריכה להיראות כך:

- שמור את הקובץ
בגרסה הבאה של WPML, יוחל אותו תיקון.
הקוד בשלב 3 נועד להדפיס את תגיות המטא hreflang מוקדם ככל האפשר, אך הדבר גורם לבעיות עם כמה ערכות עיצוב ותוספים.
אם אתה עדיין רוצה שתגיות המטא hreflang יודפסו מוקדם ככל האפשר, תוכל ליישם פתרון מורכב יותר. הוסף את הקוד הזה לקובץ functions.php של ערכת העיצוב שלך:
function my_handle_head_hreflang() {
global $sitepress;
$settings = $sitepress->get_settings();
if ( $settings[ 'seo' ][ 'head_langs' ] ) {
remove_action( 'wp_head', array( $sitepress, 'head_langs' ) );
add_action( 'wp_head', array( $this, 'head_langs' ), 1 );
}
}
add_action('wpml_loaded', 'my_handle_head_hreflang');