WPML Get url without outputting

Actually WordPress lacks a real function to get posts by slug/post-name. But you can use get_page_by_path() for it so you don’t have to use a custom query:

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);
}

The only difference here is that you must use the full path i.e. ('parent-page/sub-page') if you have a hierarchical structure. For posts and non-hierarchical pages you can just use the slug as param.

Leave a Comment