检测帖子所用的语言

时间:2013-02-11 作者:tembamazingi

是否有任何方法可以评估帖子/页面所用的语言?我正在建立一个多语言的网站,并且正在努力使前端导航将所选语言考虑在内。到目前为止,polylang插件http://wordpress.org/extend/plugins/polylang/ 其他方面都很好。

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

帖子的主语言应该保存在帖子元字段中。没有办法自动检测到这一点。甚至谷歌的启发式算法也经常失败。

因此,添加自定义字段lang 并检查…

$language = get_post_meta( get_the_ID(), \'lang\', TRUE );
…这篇文章是用什么语言写的。

更新这里是一个非常简单的语言选择器示例。它将在具有Publish 代谢箱。

enter image description here

get_post_meta( get_the_ID(), \'_language\', TRUE ); 
…将返回帖子的语言(如果可用)。

add_action( \'post_submitbox_misc_actions\', \'t5_language_selector\' );
add_action( \'save_post\', \'t5_save_language\' );

function t5_language_selector()
{
    print \'<div class="misc-pub-section">
        <label for="t5_language_id">Language</label>
        <select name="t5_language" id="t5_language_id">\';

    $current = get_post_meta( get_the_ID(), \'_language\', TRUE );
    $languages = array (
        \'en\' => \'English\',
        \'de\' => \'Deutsch\',
        \'ja\' => \'日本人\'
    );

    foreach ( $languages as $key => $language )
        printf(
            \'<option value="%1$s" %2$s>%3$s</option>\',
            $key,
            selected( $key, $current, FALSE ),
            $language
        );

    print \'</select></div>\';
}


function t5_save_language( $id )
{
    if ( defined( \'DOING_AJAX\' ) && DOING_AJAX )
        return;

    if ( ! current_user_can( \'edit_post\', $id ) )
        return;

    if ( ! isset ( $_POST[\'t5_language\'] ) )
        return delete_post_meta( $id, \'_language\' );

    if ( ! in_array( $_POST[\'t5_language\'], array ( \'en\', \'de\', \'ja\' ) ) )
        return;

    update_post_meta( $id, \'_language\', $_POST[\'t5_language\'] );
}

SO网友:Epeli

对于rest api、wp graphql和wp cliwp eval-file 我需要这样做

wp_get_post_terms( $post->ID, \'language\' )[0]->slug

结束

相关推荐

multi-language WordPress site

我正在制作由WordPress支持的多语言网站。WPML 不是免费的,而且它对数据库进行了太多额外的sql查询,所以对于我的站点来说,这不是一个好的解决方案。qTranslate 将所有语言保存在一个数据库行中,以后移动到另一个多语言插件非常复杂。<?php _e( \'<!--:en-->english text<!--:--><!--:de-->german text<!--:-->\' ); ?> xLanguage 两年多没有更新