ホーム » ドキュメンテーション » スタートガイド » サイトナビゲーション » メニューアイテムのためのHTMLカスタマイゼーション

メニューアイテムのためのHTMLカスタマイゼーション

WPMLはあなたのHTMLのメニューに素敵なナビゲーションメニューを創ります。

例を見てみましょう。 この例のようにあなたはトップ部分のナビゲーション・メニューにアイコンと簡略な説明を追加したいとします。

ドロップダウン・メニューはアイコンと説明を含む

ドロップダウン・メニューはアイコンと説明を含む

まず各ページにカスタマイズしたフィールドを追加し、そこへアイコンと説明文を記載します。そしてメニュー機能に行き、これらのフィールドをメニュー項目として使用するよう指示します。

ステップ1)ページにカスタマイズしたフィールドを追加する

各ページに独自のユニークなアイコンと説明を持たせるには、カスタマイズしたフィールドを使います。

アイコンと説明用のカスタマイズされたフィールドをページに追加

アイコンと説明用のカスタマイズされたフィールドをページに追加

ステップ2) メニュー項目を作るテーマ機能を設定する

メニュー項目のHTMLを作る機能を作成します。初期設定ではメニューの各項目がページタイトルを持ちます。この機能はあなたにメニュー項目内に任意のHTMLを置かせます。

WPMLはドロップダウン効果やセクションやその他からなるメニュー全体を作成します。この機能は各項目のコンテンツをコントロールします。

以下は私の機能です。

function text_for_menu($page_id, $menu_level){
  $ret = '';
  $icon = get_post_meta($page_id,'icon',true);
  $description = get_post_meta($page_id,'Description',true);
  if($menu_level==0){
    if ($icon) $ret .= '<img width="24" height="24" style="vertical-align: middle; margin:0 5px 0 5px;" src="'.$icon.'" alt="icon" />';
    $ret .= get_the_title($page_id);
    $ret .= '<br /><span>'.$description.'</span>';
  } else {
    if ($icon) $ret .= '<img width="16" height="16" style="vertical-align: middle; margin:0 5px 0 0;" src="'.$icon.'" alt="icon" />';
    $ret .= get_the_title($page_id);
  }
  return $ret;
}

上記は次を行います。

  1. 「アイコン」と「説明」と呼ばれるカスタマイズされたフィールドのコンテンツを得ます: get_post_meta($page_id,’icon’,true);
  2. 項目がどのメニューレベルにあるか調べます。トップメニューは「0」、ドロップダウン項目は「1」です。
  3. トップメニュー項目については、24×24のアイコン一つ、ページタイトル、説明を追加します。
  4. ドロップダウンメニューに対しては、16×16アイコンを一つとページタイトルを追加します。

ステップ3) WPMLにその機能を付加します。

最後にWPMLにメニュー項目を作る際、この機能を使用することを指示します。 それは以下のラインを functions.phpに追加することで実施されます。

add_filter('icl_nav_page_html', 'text_for_menu', 1, 2);

このラインはWordPressに text_for_menu と呼ばれる機能を WPMLの icl_nav_page_html に追加するよう指示します。これは標準のWPフィルターで数回呼びだして、フィールドをいくつでも追加させます。

返答する

このページだけのコメントをここに残してください。br />テクニカルサポートと提案については、私どものフォーラムへおいでください。 お待ちしております!

これらのタグを使用できます:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>