- Estado
- Esperando al autor
- Plugin/tema relacionado
- Custom Permalinks
- Etiquetas de temática
- Compatibility
Resumen del problema
Al usar Custom Permalinks con WPML, los enlaces internos a las páginas traducidas pueden apuntar a la página en el idioma original en lugar de a la página traducida cuando la página de destino usa un enlace permanente personalizado.
Solución alternativa
Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.
Solución alternativa – parte I
- Abra el archivo …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php.
- Busque la línea 165.
- Reemplace:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink;
- Por:
public function wpml_permalink_filter( $permalink, $language_code ) { $custom_permalink = $permalink; $language_code = apply_filters( 'wpml_current_language', NULL );
Solución alternativa – parte II
- En el mismo archivo (class-custom-permalinks-frontend.php).
- Busque la línea 913.
- Reemplace:
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 );
- Por:
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 );