WordPress 3.0 Thelonious リリースとカスタムメニュー

幾度かの RC を経まして WordPress 3.0 Thelonious がリリースされました!

ja(日本語)版リリースに先駆けまして、ここ hiromasa.another も 3.0 にアップグレード。 実は少し前から RC 版で動かしておりましたので、トラブルなく動作しました。

3.0 はマルチブログ、カスタム投稿、カスタムメニューの機能追加、カスタム分類強化などなどデータ構造の変更を含む大きなリリースとなっています。

その他の大量の変更内容も含めまして、codex をみると非常によく分かります。 🙂

Version 3.0 – WordPress Codex 日本語版

2010年6月17日(木)(米国時間)、WordPress バージョン 3.0 がリリースされました原文)。このバージョンのバグフィクスについての情報は、Trac のクローズチケット一覧をご覧ください。

カスタム投稿 + カスタム分類は強力な変更ですが、ここのような既に動作しているブログでは品行方正(?!)が必要な部分もありいきなりの導入はちょっと難しい(笑)ですので、まずはカスタムメニューを導入してみました。

WordPress を CMS 的に使う場合、コンテンツがスタックする部分にカテゴリやタグを、変更が累積しない場合にはページを使うというのがあちこちでみる常套手段となっていますが、その統一ナビゲーションメニューをつくるのって結構大変です。

wp_page_manu だと基本ページの一覧しかだせないので、カテゴリリンクとまぜて ol li を構築するのがやっかいです。 あとページだけでも順番そろえたりとか結構面倒、てなわけで登場したのが wp_nav_menu。

管理画面の UI 操作で、カテゴリ、タグ、カスタム投稿、その他手動設定のリンクや個別の投稿を選択してメニュー化できます。

nav02

階層構造ももつことができて、対応する CSS を書いてあげればドロップダウンメニューとかもできるようになっています。

使い方は簡単で、今テーマで wp_page_menu とかしているところを、wp_nav_manu テンプレートタグに置き換えればとりあえず、それとなく動くようになっているようです。 本来的にはテーマの functions.php で register_nav_menu してあげてからにすると、複数のメニューを任意の位置にだすことができます。

nav01 

たとえば、ここのサイトで使っているテーマフレームワーク Thematic の場合は、functions.php に以下を追加すると既存のヘッダページメニューをカスタムメニューに置き換えられます。(そのうち Thematic 本家も対応すると思いますのでこれはサンプルってことで 🙂

/******************************************************************************
 * メニュー変更
 *****************************************************************************/
function refrect_setup() {
    // thematic 標準ナビゲーション(wp_page_nav)削除
    remove_filter('thematic_header','thematic_access', 9);
    // テーマにナビゲーション登録
    register_nav_menu('primary', 'ヘッダのところのナビゲーション');
    // thematic ナビゲーション変更
    add_action('thematic_header','add_custom_menu', 9);
}
 
function add_custom_menu() {
?>
    <div id="access">
    <div class="skip-link"><a href="#content" title="<?php _e('Skip navigation to the content', 'thematic'); ?>"><?php _e('Skip to content', 'thematic'); ?></a></div>
        <?php wp_nav_menu(array(
            'theme_location' => 'primary'
            , 'container_class' => 'menu'
            ,'menu_class' => 'sf-menu sf-js-enabled')); ?>
    </div><!-- #access -->
<?php
}
 
add_action('after_setup_theme', 'refrect_setup');

 

このソースは Thematic 特有のコードが入っていますが、基本はそれぞれのテーマの functions.php に

register_nav_menu('primary', 'ヘッダのところのナビゲーション');

 

この1行を追加しまして、テーマでカスタムメニューをだしたい部分に、

<?php wp_nav_menu(array('theme_location' => 'primary')); ?>

 

とかけば OK のハズです。 primary っていうのが id で任意の名前をつけて複数メニューがある場合はこれで識別します。 簡単あるね。

wp_nav_manu には引数で html の id や class を指定できますので、CSS にいい感じに合わせれば良いと思います。

テーマファイルもいじりたくないって場合は、3.0 からこのカスタムメニューを表示するウィジェットが用意されていますので、これをぺたっと張ればサイドバーとかにはすぐだせますね。 🙂

nav03

ちなみに、このサイトの上のナビゲーションはカスタムメニュー化しています。 ページしか使っていなかったので、見た目「ホーム」が「Home」になっただけですが、順番を UI で変えられるのは便利です。

まずは、是非是非。 🙂

WordPress 3.0 Thelonious リリースとカスタムメニュー」への1件のフィードバック

  1. ピンバック: WordPressにナビゲーションバー追加 « wired raven

コメントを残す