WPML

Обзор проблемы

При использовании RankMath SEO или Yoast SEO с нашим дополнением WPML SEO Вы можете столкнуться с некорректными значениями hreflang в XML-карте сайта. Вместо использования значений hreflang, заданных в настройках языков WPML, XML-карта сайта использует код языка (например, 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 ) . '" />';
        };

Все известные проблемы

Всё ещё сталкиваетесь с этой проблемой?

Если обновление не устраняет проблему, отправьте запрос в поддержку, и мы разберемся в ней вместе с Вами.