qTranslateで Hide Untranslated Content オプションがうまく動かなくなった場合の対処

前もこれにはまってしまった記憶があるのに、メモしてなかった。

Wordpressで制作するウェブサイトを多言語化する際に役立つプラグインがqTranslate。

プラグインページ:http://wordpress.org/extend/plugins/qtranslate/

使い方とか:http://www.webcreatorbox.com/tech/qtranslate-multilingual-wordpress-plugin/

日本では使うことがあまりなかったけど、こっちにいるとウェブサイトは2か国語でって場合が結構あるので、ほぼ全案件に使っている気がする。
それぞれの言語でコンテンツがまったく一緒ってことも少ないから、qTranslateのHide Untranslated Content機能は素晴らしい。

がしかし、動かないことがしばしば。
うごかないとコレやってね。と注意書きが書いてあります。

This function will not work correctly if you installed qTranslate on a blog with existing entries. In this case you will need to take a look at "Convert Database" under "Advanced Settings".

でもやってもだいたい動かないんだよね。
そんな場合は、下記のファイルをいじります。
119行あたり。
wp-content/plugins/qtranslate/qtranslate_hooks.php

function qtrans_excludeUntranslatedPosts($where) {
    global $q_config, $wpdb;
    if($q_config['hide_untranslated'] && !is_singular()) {
        $where .= " AND $wpdb->posts.post_content LIKE '%<!--:".qtrans_getLanguage()."-->%'";
    }
    return $where;
}

ってなってるのを下のようにする。

function qtrans_excludeUntranslatedPosts($where) {
    global $q_config, $wpdb;
    if($q_config['hide_untranslated'] && !is_singular()) {
        $where .= " AND $wpdb->posts.post_title LIKE '%<!--:".qtrans_getLanguage()."-->%'";
    }
    return $where;
}

AND $wpdb->posts.post_content を AND $wpdb->posts.post_title
にするだけです。

これをすると、タイトルが空の場合は、(日本語)タイトル・・・・なんてなることもなくなります。

参考リンク
http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=810&p=11398&hilit=hide+content#p11398

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた