- Stato
- In attesa dell’autore
- Plugin/tema correlato
- Custom Permalinks
- Tag dell’argomento
- Compatibility
Panoramica del problema
Utilizzando Custom Permalinks con WPML, i link interni alle pagine tradotte potrebbero puntare alla pagina nella lingua originale anziché alla pagina tradotta quando la pagina di destinazione utilizza un permalink personalizzato.
Soluzione alternativa
Assicurati di avere un backup completo del tuo sito prima di procedere.
Soluzione alternativa – Parte I
- Apri il file …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php.
- Cerca la riga 165.
- Sostituisci:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink;
- Con:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink; $language_code = apply_filters( 'wpml_current_language', NULL );
Soluzione alternativa – Parte II
- Nello stesso file (class-custom-permalinks-frontend.php).
- Cerca la riga 913.
- Sostituisci:
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 );
- Con:
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 );