WPML Obter url sem saída

Estou em processo de migration de qTranslate para WPML para lidar com meus idiomas.

Com o qTranslate, eu tinha uma maneira muito simples de obter uma url para uma página ou publicação sabendo que é slug: $url = get_language_url(home_url($slug));

Agora, com o WPML, não consigo encontrar uma maneira de fazer isso …

Existe a function icl_link_to_element , mas ele produz diretamente o link na etiqueta aa. Além disso, você precisa saber o ID da postagem.

De qualquer forma, posso obter um link para uma publicação no idioma correto, sabendo que é slug?

Solutions Collecting From Web of "WPML Obter url sem saída"

Na verdade, o WordPress não possui uma function real para obter postagens por slug / post-name. Mas você pode usar get_page_by_path () para isso, então você não precisa usar uma consulta personalizada:

 if(function_exists('icl_object_id')) { $post = get_page_by_path('your-slug'); $id = icl_object_id($post->ID,'post',true); $link = get_permalink($id); } 

A única diferença aqui é que você deve usar o caminho completo, ou seja ( 'parent-page/sub-page' ) se você tiver uma estrutura hierárquica. Para postagens e páginas não-hierárquicas, você pode usar a slug como param.

Você pode obter um link para uma publicação por meio de slug usando o seguinte código.

 < ?php global $wpdb; $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = 'name-of-slug'"); if(function_exists('icl_object_id')){ get_permalink(icl_object_id($id,'post',true)); } ?>