- Status
- Warten auf Autor
- Zugehöriges Plugin/Theme
- Custom Permalinks
- Themen-Tags
- Compatibility
Übersicht über das Problem
Bei der Verwendung von Custom Permalinks mit WPML können interne Links zu übersetzten Seiten auf die Seite in der Originalsprache statt auf die übersetzte Seite verweisen, wenn die Zielseite einen benutzerdefinierten Permalink verwendet.
Problemumgehung
Bitte erstellen Sie ein vollständiges Backup Ihrer Website, bevor Sie fortfahren.
Problemumgehung – Teil I
- Öffnen Sie die Datei …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php.
- Suchen Sie nach Zeile 165.
- Ersetzen Sie:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink;
- Durch:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink; $language_code = apply_filters( 'wpml_current_language', NULL );
Problemumgehung – Teil II
- In derselben Datei (class-custom-permalinks-frontend.php).
- Suchen Sie nach Zeile 913.
- Ersetzen Sie:
public function custom_page_link( $permalink, $page ) { $custom_permalink = get_post_meta( $page, 'custom_permalink', true ); if ( $custom_permalink ) { $language_code = apply_filters( 'wpml_element_language_code', null, array( 'element_id' => $page, 'element_type' => 'page', ) ); $permalink = $this->wpml_permalink_filter( $custom_permalink, $language_code );
- Durch:
public function custom_page_link( $permalink, $page ) { $custom_permalink = get_post_meta( $page, 'custom_permalink', true ); if ( $custom_permalink ) { $language_code = apply_filters( 'wpml_element_language_code', null, array( 'element_id' => $page, 'element_type' => 'page', ) ); $page_translated = apply_filters( 'wpml_object_id', $page, 'page', $language_code ); $custom_translated_permalink = get_post_meta( $page_translated, 'custom_permalink', true ); if ( $custom_translated_permalink ) { $custom_permalink = $custom_translated_permalink; } $permalink = $this->wpml_permalink_filter( $custom_permalink, $language_code );