WPML — отличный плагин для управления многоязычными сайтами, поскольку он позволяет редактировать большое количество важной информации, связанной с переведенным контентом. Однако, хотя этот плагин добавляет теги hreflang, отсутствует поддержка аннотации hreflang=x-default.
Поэтому я хотел бы знать, как добавить этот тег x-default на сайты WPML и сделать так, чтобы он указывал на желаемую языковую версию URL-адреса.
На форумах WPML есть несколько примеров кода, но они предназначены для более старых версий этого плагина. Все они указывают на необходимость редактирования функции head_langs, которая в настоящее время состоит из следующего кода:
function head_langs()
{
$languages = $this->get_ls_languages( array( 'skip_missing' => true ) );
// If there are translations and is not paged content...
//Renders head alternate links only on certain conditions
$the_post = get_post();
$the_id = $the_post ? $the_post->ID : false;
$is_valid = count( $languages ) > 1 && !is_paged() && ( ( ( is_single() || is_page() ) && $the_id && get_post_status( $the_id ) == 'publish' ) || ( is_home() || is_front_page() || is_archive() ) );
if ( $is_valid ) {
foreach ( $languages as $code => $lang ) {
$alternate_hreflang = apply_filters( 'wpml_alternate_hreflang', $lang[ 'url' ], $code );
printf( '<link rel="alternate" hreflang="%s" href="%s" />' . PHP_EOL,
$this->get_language_tag( $code ),
str_replace( '&', '&', $alternate_hreflang ) );
}
}
}