• 解決済 momonuts

    (@momonuts)


    qtranslateを使って日本語と英語のサイトを作っております。
    メニュー部分は「外観→メニュー」を使っております。

    英語サイトの場合、表示させたくないメニューがあります。

    例えば
    日本語:ホーム ニュース 会社概要 お問い合わせ
    英語:ホーム 会社概要

    という風に、英語の場合は「ニュース」と「お問い合わせ」を
    メニューに表示させないという形にしたいのです。

    そういった場合、どの様にすれば良いか調べたのですが分からず
    質問させていただきました。

    お知恵をお貸しください。よろしくお願いいたします。

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • こんにちは、

    $_SERVER["HTTP_ACCEPT_LANGUAGE"]

    を使って、オリジナルのコンディショナルタグを作るか、body_class()に言語クラスをフィルターで追加して、styleで非表示にするという事ではどうですか?

    if (qtrans_getLanguage() == ‘en’)

    で分岐してクラスを付けるか、メニューを2つ用意する、あたりかと。

    トピック投稿者 momonuts

    (@momonuts)

    アドバイスありがとうございます!
    結局navにclassを付けて対応いたしました。

    でもそうすると、英語の「HOME」リンクが日本語のHOMEへのリンクになってしまいます。
    [一般設定] の [サイトアドレス (URL)]で固定されているからだとは思うのですが
    英語サイトのHOMEは英語のトップページへのリンクとする方法はございますでしょうか?

    ラベルは

    <!–:en–>Home<!–:–>

    のように書けばいいそうですが、URLも同様に書いてみては?

    トピック投稿者 momonuts

    (@momonuts)

    orangethyme 様
    ありがとうございます。
    でもそうしてしまうと、外観→メニュー機能を使わずメニューを組み立てる事になってしまいますので、外観→メニュー機能を使ってのメニュー表示の場合の方法を探しているのです。。。

    home リンクが、自動的に追加されているのですか?

    であれば、
    テーマ内で、以下のようなフィルタで、ホームリンクが自動的に追加されている事があるので、(デフォルトでは、ホームへのリンクは非表示だったと思います)

    add_filter( 'wp_page_menu_args', 'テーマの関数名' );
    
            function テーマの関数名( $args ) {
    
                $args['show_home'] = true;//ここをfalseにするとか
    
                return $args;
            }

    そのフィルタをコメントアウトして、orangethymeさんのコンディショナルタグで、条件分岐して英語用のメニューと日本語用のメニューを作るといいのではないかと思います。

    home linkは、メニューで作るようにするといいと思います。

    qtranslate のフォーラムにカスタムメニューの表示を言語ごとに変えるには?という話題で、ラベル欄に上記のように書けば良い、と。

    トピック投稿者 momonuts

    (@momonuts)

    メニューは外観→メニュー内に表示したいメニューを入れて表示させる
    という形にしております。
    その中に「HOME」リンクも入れているため、HOMEリンクが表示されています。

    英語ページの「HOME」リンクをen/index.phpにするためには

    http://www.promenade.sakura.ne.jp/wp_blog/makeblog/wp/3194/
    このページの下部「URLの切り替え」を見ると、functions.phpに
    function q_convertURL($url){
    return function_exists(‘qtrans_convertURL’) ? qtrans_convertURL($url):$url;
    }
    の様なコードを書き足せば良い様なのですが、上記をfunctions.phpに追記すると
    画面が真っ白になってしまいサイトも見れないという感じのエラーが起きてしまうのです。。。

    ページの内容をきちんと把握していないのかもしれませんが、何とか解決したいと思っております。

    何卒お力をお貸しくださいm(_ _)m

    トピック投稿者 momonuts

    (@momonuts)

    ちなみに、テーマはTwenty Twelveを使っております。

    orangethymeさんの

    で分岐してクラスを付けるか、メニューを2つ用意する、あたりかと。

    は、出来ているんですか?

    function new_nav_menu_items($items) {
    $homelink = ‘<li class=”home”>‘ . __(‘Home’) . ‘‘;
    $items = $homelink . $items;
    return $items;
    }
    add_filter( ‘wp_nav_menu_items’, ‘new_nav_menu_items’ );

    でカスタムメニューにホームへのリンクを自動追加

    add_filter(‘home_url’,’qtrans_convertURL’);

    でホームのURLが自動で変わります。

    トピック投稿者 momonuts

    (@momonuts)

    皆様、アドバイスありがとうございます。
    色々と試行錯誤していたため返信が遅くなりすみません。

    色々なサイトを調べ自己解決したので、今後同じ問題にあたる方の為に
    解決法を掲載しておきます。

    参考にしたのは
    http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=2998
    こちらです。

    こちらに記述してあるコードをfunctions.phpに追記する事で
    無事思い通りの動作(英語ページ内HOMEリンクは英語インデックスへ)が
    実現いたしました。

    皆様、ありがとうございました!

12件の返信を表示中 - 1 - 12件目 (全12件中)
  • トピック「qtranslateを使ったサイトのメニューを言語ごとに分けたい」には新たに返信することはできません。