- Status
- Aguardando o autor
- Plugin/tema relacionado
- Custom Permalinks
- Tags de tópico
- Compatibility
Visão geral do problema
Ao usar o Custom Permalinks com o WPML, os links internos para páginas traduzidas podem apontar para a página no idioma original em vez da página traduzida quando a página de destino usa um link permanente personalizado.
Solução alternativa
Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.
Solução alternativa – Parte I
- Abra o arquivo …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php.
- Procure a linha 165.
- Substitua:
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 );
Solução alternativa – Parte II
- No mesmo arquivo (class-custom-permalinks-frontend.php).
- Procure a linha 913.
- Substitua:
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 );