标签归档:禁止翻译

禁止cos_slug_translator将全英文标题url翻译为中文

cos_slug_translator是一个很好用的插件,会自动将带有中文的标题翻译为英文,作为永久链接,英文比中文更好。
cos_slug_translator采用了有道的翻译api,目前版本是1.1,这个api会将中文翻译为英文,同时,也会将英文翻译为中文。没有参数可以指定是 中->英 还是 英->中。这样就造成了如果标题是全英文的,那么最终的固定连接会自动被替换为翻译过来的中文,反倒不美。
进行如下修改,如果表里中不含有中文,就不进行翻译

修改 function CosSlugTrans($postID){
    $tableposts = $wpdb->posts ;
        $sql = "SELECT post_title,post_name FROM $tableposts WHERE ID=$postID";
        $res = $wpdb->get_results($sql);    
        $post_title = $res[0]->post_title;
        $tran_title = cos_tranlate($post_title);
        $slug = $tran_title;
        if(function_exists("sanitize_title") ) {
            if( sanitize_title( $res[0]->post_title ) != $res[0]->post_name  ){
                if( !substr_count($path, '%') ) 
....
修改为
    $tableposts = $wpdb->posts ;
        $sql = "SELECT post_title,post_name FROM $tableposts WHERE ID=$postID";
        $res = $wpdb->get_results($sql);    
        $post_title = $res[0]->post_title;

        if (preg_match("/[\x7f-\xff]/", $post_title)) {
            $tran_title = cos_tranlate($post_title);
            $slug = $tran_title;
        } else {
            $slug = $post_title;
        }

        if(function_exists("sanitize_title") ) {
            if( sanitize_title( $res[0]->post_title ) != $res[0]->post_name  ){
                if( !substr_count($path, '%') ) 
....