- Status
- Gelöst
- Gelöst in
- 1.2.0
- Zugehöriges Plugin/Theme
- Yoast SEO
Übersicht über das Problem
Nach den jüngsten größeren Änderungen in Yoast 14.x stellen einige WPML-Benutzer fest, dass Yoast-Inhalte immer in der Standardsprache generiert werden.
Zum Beispiel könnten dies auf einer Seite in einer Sekundärsprache „meta“-Tags wie „og:title“ oder „og:description“ oder die URLs in Ihren Breadcrumbs sein.
Wir haben eine Problemumgehung, aber aufgrund der Art des Problems funktioniert diese möglicherweise nicht für jeden. Wir arbeiten daran, dieses Problem so schnell wie möglich zu beheben.
Wenn Sie Probleme beim Übersetzen von Yoast-Inhalten haben, versuchen Sie bitte die unten stehende Problemumgehung und warten Sie auf die nächste Version von Yoast Multilingual, bevor Sie ein Support-Ticket erstellen.
Problemumgehung
Fügen Sie diesen Code zur functions.php Ihres Themes hinzu:
if ( ! is_admin() ) {
add_filter( 'wpseo_title', 'wpml_wpseo_title', 10, 2 );
add_filter( 'wpseo_opengraph_title', 'wpml_wpseo_title', 10, 2 );
}
function wpml_wpseo_title( $title, $presentation ) {
switch ( $presentation->model->object_type ) {
case 'post-type-archive':
$key = 'title-ptarchive-' . $presentation->model->object_sub_type;
break;
case 'system-page':
$key = 'title-' . $presentation->model->object_sub_type . '-wpseo';
break;
default:
$key = false;
}
if ( $key ) {
$option = get_option( 'wpseo_titles' );
if ( isset( $option[ $key ] ) ) {
$title = wpseo_replace_vars( $option[ $key ], $presentation );
}
}
return $title;
}
if ( ! is_admin() ) {
add_filter( 'wpseo_metadesc', 'wpml_wpseo_desc', 10, 2 );
add_filter( 'wpseo_opengraph_desc', 'wpml_wpseo_desc', 10, 2 );
}
function wpml_wpseo_desc( $title, $presentation ) {
switch ( $presentation->model->object_type ) {
case 'post-type-archive':
$key = 'metadesc-ptarchive-' . $presentation->model->object_sub_type;
break;
case 'system-page':
$key = 'metadesc-' . $presentation->model->object_sub_type . '-wpseo';
break;
default:
$key = false;
}
if ( $key ) {
$option = get_option( 'wpseo_titles' );
if ( isset( $option[ $key ] ) ) {
$title = wpseo_replace_vars( $option[ $key ], $presentation );
}
}
return $title;
}
add_filter( 'wpseo_save_indexable', function( $indexable ) {
$args = [
'element_id' => $indexable->object_id,
'element_type' => $indexable->object_type,
];
$language_code = apply_filters( 'wpml_element_language_code', false, $args );
$indexable->permalink = apply_filters( 'wpml_permalink', $indexable->permalink, $language_code, true );
return $indexable;
} );
Nachdem Sie den Code hinzugefügt haben, installieren Sie das Plugin Yoast Test Helper.
Gehen Sie zu Werkzeuge > Yoast Test und klicken Sie auf „Reset Indexables tables & migrations“.
Gehen Sie abschließend zu Ihrem Dashboard und klicken Sie auf den Admin-Hinweis, der Sie auffordert, die Website zu indexieren.
Wenn Sie Fragen haben oder ein damit zusammenhängendes Problem melden möchten, erwähnen Sie bitte dieses bekannte Problem, damit unser Team Ihnen effizienten Support bieten kann.