Upload
mayuko-moriyama
View
10.660
Download
1
Embed Size (px)
Citation preview
自己紹介•森山真祐子です! • 旅行が好き
• WordBench 東京の雑用担当
• WordCamp Central のボランティア
• 好きなスターターテーマは「_s」
• 最近、カスタムメニューのバグを発見。
<ul> <li> <a href="http://local.dev/"> いっこめ </a> </li> <li> <a href="http://local.dev/"> にこめ </a> </li> <li> <a href="http://local.dev/"> さんこめ </a> </li> <li> <a href="http://local.dev/"> よんこめ </a> </li> <li> <a href="http://local.dev/"> ごこめ </a> </li> <li> <a href="http://local.dev/"> ろっこめ </a> </li> </ul>
リストタグって 長くなるし あんまり美しく ないし
<ul> <li> <a href="http://local.dev/"> いっこめ </a> </li> <li> <a href="http://local.dev/"> にこめ </a> </li> <li> <a href="http://local.dev/"> さんこめ </a> <ul> <li> <a href="http://local.dev/"> さんこめの子いっこめ </a> </li> <li> <a href="http://local.dev/"> さんこめの子にこめ </a> </li> <li> <a href="http://local.dev/"> さんこめの子さんこめ </a> </li> </ul> </li> <li> <a href="http://local.dev/"> よんこめ </a>
<ul> <li> <a href="http://local.dev/"> よんこめの子いっこめ </a> </li> <li> <a href="http://local.dev/"> よんこめの子にこめ </a> </li> <li> <a href="http://local.dev/"> よんこめの子さんこめ </a> </li> </ul> </li> <li> <a href="http://local.dev/"> ごこめ </a> </li> <li> <a href="http://local.dev/"> ろっこめ </a> </li> </ul>
入れ子になったら もういやだ
<ul> <li> <a href="http://local.dev/"> いっこめ </a> </li> <li> <a href="http://local.dev/"> にこめ </a> </li> <li> <a href="http://local.dev/"> さんこめ </a> <ul> <li> <a href="http://local.dev/"> さんこめの子いっこめ </a> </li> <li> <a href="http://local.dev/"> さんこめの子にこめ </a> </li> <li> <a href="http://local.dev/"> さんこめの子さんこめ </a> </li> </ul> </li> <li> <a href="http://local.dev/"> よんこめ </a>
<ul> <li> <a href="http://local.dev/"> よんこめの子いっこめ </a> </li> <li> <a href="http://local.dev/"> よんこめの子にこめ
add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu() {
register_nav_menu( 'primary', __( 'Primary Menu', 'theme-slug' ) );
}
wp_nav_menu();
header.php
functions.php header.php
\設定は簡単/
これで、管理画面での設定に基づいて リストタグを生成してくれます!
いろいろなカスタマイズ1. クラスや ID を指定しよう
2. 項目ごとに異なるアイコンをつけよう
3. 入れ子がないメニューをつくろう
4. 複数のメニューを登録しよう
5. 日英表記してみよう
6. ぜんぶカスタマイズしよう
\どんどんいくぞ/
<?php wp_nav_menu( array( ‘キー' => ‘バリュー’,
)); ?>
<?php wp_nav_menu(); ?>
wp_nav_menu への設定は連想配列で渡します。 全パラメーターは Codex を参照。
設定のキホン
<?php wp_nav_menu( array( 'menu_class' => ‘', // ulタグのクラスを追加
'menu_id' => ‘{slug}-1’, // ulタグの id を変更
'container' => ‘div‘, // 変更すると、div タグを nav タグや無しに変更できる
'container_class' => ‘menu-{menu slug}-container‘, // div タグのクラスを変更
'container_id' => ‘', // div タグの id を追加
) ); ?>
<?php wp_nav_menu(); ?>
これで、まわりの div タグや ul タグのクラスが指定できます
クラスや id の追加
\ちなみに/
自動で追加されるクラス
• Codex でチェックしよう
• 実際に WordPress で生成されたメニューの HTML を読んでみよう
参考: メニュー項目の CSS クラス
<?php wp_nav_menu( array( 'menu_class' => ‘menu', // ulタグのクラスを追加
'menu_id' => ‘{slug}-1’, // ulタグの id を変更
'container' => ‘div‘, // 変更すると、div タグを nav タグや無しに変更できる
'container_class' => ‘menu-{menu slug}-container‘, // div タグのクラスを変更
'container_id' => ‘', // div タグの id を追加
'depth' => ‘1', ) ); ?>
さきほどのメニューに 追加する場合
add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu() {
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'theme-slug' ),
'secondary' => __( 'Secondary Menu', 'theme-slug' ),
) );
}
functions.php header.php
register_nav_menus で配列を設定
add_action( 'after_setup_theme', 'register_my_menu' );
function register_my_menu() {
register_nav_menu(
'primary', __( 'Primary Menu', 'theme-slug' )
);
}
functions.php
<?php wp_nav_menu( array( 'theme_location' => ‘primary’, ) ); ?>
header.php header.php
‘theme_location’ に明示的に指定
<?php wp_nav_menu(); ?>
header.php
<?php wp_nav_menu( array( 'theme_location' => ‘secondary’, ) ); ?>
footer.php
• カスタマイズしたソースの場所https://github.com/mayukojpn/chocolat/tree/wbtokyo-demo01
Codex にこんなコードも
参考: 関数リファレンス/wp get nav menu items
Walker Class という方法も
<?php wp_nav_menu( array( 'walker' => new Custom_Walker_Nav_Menu(), ) ); ?>
<?php class Custom_Walker_Nav_Menu extends Walker {
(ここにかわりの動きをかく)
} ?>
header.php
functions.php
• Trac のチケットhttps://core.trac.wordpress.org/ticket/35324
• 修正プラグインhttps://gist.github.com/mayukojpn/6ef62c39dcf48c17ed96