文章页面里,在文章的底部显示该篇文章对应的翻译的语种(国旗)和标题。
暂时没有发现有现成的函数或 API 接口。但是从WPML 的表里面不难看出他们的关系,通过一句SQL即可找出当前文章对应文章的ID, 如下:
function _post_foot_languages(){ global $post, $wpdb, $sitepress; $active_languages = $sitepress->get_active_languages(); unset($active_languages[ICL_LANGUAGE_CODE]); //print_r(array_keys($active_languages)); $source_language_code = ""; if(ICL_LANGUAGE_CODE != $sitepress->get_default_language()) $source_language_code = " and source_language_code = '".$sitepress->get_default_language()."'"; $query =" SELECT * FROM {$wpdb->prefix}icl_translations WHERE trid = ( SELECT trid FROM {$wpdb->prefix}icl_translations WHERE element_id = {$post->ID}{$source_language_code}) AND language_code in ('".join('\',\'',array_keys($active_languages))."')"; //AND language_code != '".ICL_LANGUAGE_CODE."'"; //echo $query; $get_translate = $wpdb->get_results($query); //print_r($get_translate); $template_url = get_bloginfo('stylesheet_directory'); if(0 < count($get_translate)){ $html[] = '<h3>'; $html[] = __('This post is also available in other languages', 'twentyeleven' ); $html[] = '</h3>'; $html[] = '<ul class="this_translates">'; foreach($get_translate as $l){ if (get_post_status($l->element_id) === "publish"){ $html[] = '<li><img src="'. plugins_url( 'sitepress-multilingual-cms/res/flags/'.$l->language_code.'.png') .'" alt="'.get_the_title($l->element_id).'"> <a href="'.get_permalink($l->element_id).'">'.get_the_title($l->element_id) .'</a></li>'; } } $html[] = '</ul>'; return join("\n", $html); } } function _add_post_wpml_translate_title($content) { if (is_single()) { $content .= _post_foot_languages(); } return $content; } add_filter ('the_content', '_add_post_wpml_translate_title', 0);