使用过WPML的朋友都知道,WPML会自动翻译文章链接或者导航中的链接到相应的页面。可是有时候,我们难免要手动写一些链接到代码中,使用get_permalink获取的链接只是当前页面的,怎么获取当前链接对应的翻译链接呢?其实很简单。
把以下代码加functions.php中,这段代码给WordPress添加了一个获取翻译页面的函数,熟悉WPML的朋友可以看出,这段代码基于WPML的icl_object_id函数。


function get_permalink_current_language( $post_id )
{
	$language = ICL_LANGUAGE_CODE;

    $lang_post_id = icl_object_id( $post_id , 'page', true, $language );

    $url = "";
    if($lang_post_id != 0) {
        $url = get_permalink( $lang_post_id );
    }else {
        // No page found, it's most likely the homepage
        global $sitepress;
        $url = $sitepress->language_url( $language );
    }

    return $url;
}

使用的时候,我们只需要把当前文章的id传入到这个函数中即可。
get_permalink_current_language( $post_id )