SlideShare a Scribd company logo
1 of 57
Download to read offline
メニューやSNSアイコンは
管理画面で設定できるように
しよう
WordBench東京2月勉強会
森山真祐子
自己紹介
• 森山真祐子です!
• 旅行が好き
• WordBench 東京の雑用担当
• WordCamp Central のボランティア
• 好きなスターターテーマは「_s」
• 最近、カスタムメニューのバグを発見。
カスタムメニューの
話をします!
セッションの目的
• プログラミングが苦手な Web デザイナーさん
&コーダーさんにもカスタムメニューを使って
もらう
• WordPress テーマ内にハードコーディング
されたメニューを撲滅する
もくじ
• カスタムメニューとは
• いろいろなカスタマイズ
• 新機能!投稿タイプアーカイブ
カスタムメニューとは
ナビゲーションのコーディング
大変ですよね?
<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>
入れ子になったら
もういやだ
あと、変更も多いし
\(^o^)/
wp_nav_menu();
\そこで!/
管理画面
から
設定
できるよう
に
なる
<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.phpheader.php
\設定は簡単/
これで、管理画面での設定に基づいて
リストタグを生成してくれます!
でも....
自動で生成してくれるってことは、
HTML を自由に書けないってことだよね?
(๑•﹏•)
\そんなことないよ/
\コピペでいこう/
いろいろなカスタマイズ
いろいろなカスタマイズ
1. クラスや ID を指定しよう
2. 項目ごとに異なるアイコンをつけよう
3. 入れ子がないメニューをつくろう
4. 複数のメニューを登録しよう
5. 日英表記してみよう
6. ぜんぶカスタマイズしよう
\どんどんいくぞ/
1. クラスや ID を指定しよう
こんなときに便利
• 使いたい CSS フレームワークや、JavaScript のライブラリなど
で、すでにつけたい ID やクラスが決まっている。
• clearfix を追加したい
<?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 の追加
2. 項目ごとに異なるアイコンを
つけよう
参考: Font Awesome の使用例のページ
li タグにも
\クラスを追加するよ/
あとは CSS を
\ 工夫してね /
\ちなみに/

自動で追加されるクラス
• Codex でチェックしよう
• 実際に WordPress で生成さ
れたメニューの HTML を読ん
でみよう
参考: メニュー項目の CSS クラス
3. 入れ子がないメニューを
つくろう
ありがちなフッター
こういうメニュー、

サブメニュー設定されたら
崩れそうですね?
wp_nav_menu( array( 'depth' => '1' ));
<?php wp_nav_menu(); ?>
<?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',
) );
?>
さきほどのメニューに
追加する場合
4. 複数のメニューを登録しよう
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.phpheader.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.phpheader.php
theme_location に明示的に指定
<?php
wp_nav_menu();
?>
header.php
<?php
wp_nav_menu( array(
'theme_location' => ‘secondary’,
) );
?>
footer.php
5. 日英表記してみよう
「説明」を使います
標準では出力されないので….
(;́Д`)
`walker_nav_menu_start_el`
\というフィルターにフックするのが簡単/
Chocolat で
\ デモします /
• カスタマイズしたソースの場所

https://github.com/mayukojpn/chocolat/tree/wbtokyo-
demo01
6. ぜんぶカスタマイズしよう
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
_s でやるなら...
(๑•﹏•)
今日の説明のどれでも
対応できないという方は.....
たぶんそのコーディング
見直したほうがいい!
※異論は懇親会でどうぞ!
(;^ω^)
\最後に/
WordPress 4.4 から
投稿タイプアーカイブが
追加されました!
バグ発見…
バグ報告しました
\テストしてくれる方募集!/
修正プラグインもあるよ
コアが修正されるまでの間使ってくださいね。
高橋くんとろゆにさんありがとう!
• Trac のチケット

https://core.trac.wordpress.org/ticket/35324
• 修正プラグイン

https://gist.github.com/mayukojpn/
6ef62c39dcf48c17ed96
\ご清聴ありがとうございました/

More Related Content

What's hot

WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
tokumotonahoko
 
Word camposaka imaigo_slideshare
Word camposaka imaigo_slideshareWord camposaka imaigo_slideshare
Word camposaka imaigo_slideshare
Go Imai
 
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
Junko Nukaga
 

What's hot (20)

WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せWordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
WordPressプラグイン開発の めんどうな作業は執事(Jenkins)にお任せ
 
ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜
 ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜 ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜
ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
 
Word pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオンWord pressはじめの一歩 テーマ作成ハンズオン
Word pressはじめの一歩 テーマ作成ハンズオン
 
2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪
 
WordPress プラグイン Advance Custum Fieldsを学ぶ
WordPress プラグイン Advance Custum Fieldsを学ぶWordPress プラグイン Advance Custum Fieldsを学ぶ
WordPress プラグイン Advance Custum Fieldsを学ぶ
 
Yat-wbnara201602
Yat-wbnara201602Yat-wbnara201602
Yat-wbnara201602
 
今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト今から始めよう!WordPressで作る女子ウケ★スマホサイト
今から始めよう!WordPressで作る女子ウケ★スマホサイト
 
WordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオン
 
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
 
ズルいLT 〜はじめてのライトニングトーク〜 / WP-D Week
ズルいLT 〜はじめてのライトニングトーク〜 / WP-D WeekズルいLT 〜はじめてのライトニングトーク〜 / WP-D Week
ズルいLT 〜はじめてのライトニングトーク〜 / WP-D Week
 
コードをさわらずにビジネスサイトを作ろう!
コードをさわらずにビジネスサイトを作ろう!コードをさわらずにビジネスサイトを作ろう!
コードをさわらずにビジネスサイトを作ろう!
 
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜
 
_s + bootstrapで始めるWordPressテーマ開発入門
_s + bootstrapで始めるWordPressテーマ開発入門_s + bootstrapで始めるWordPressテーマ開発入門
_s + bootstrapで始めるWordPressテーマ開発入門
 
Word camposaka imaigo_slideshare
Word camposaka imaigo_slideshareWord camposaka imaigo_slideshare
Word camposaka imaigo_slideshare
 
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
 
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
 
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
 UnderScoreとbootstrapとsassでword pressのテーマをつくろう UnderScoreとbootstrapとsassでword pressのテーマをつくろう
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
 
Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]Webっちゃ vol.01 [Wordpressでできること]
Webっちゃ vol.01 [Wordpressでできること]
 
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
 

Similar to メニューは管理画面で設定できるようにしよう

デザイナーとプログラマーの 仲良し大作戦
デザイナーとプログラマーの 仲良し大作戦デザイナーとプログラマーの 仲良し大作戦
デザイナーとプログラマーの 仲良し大作戦
sogawaminoru
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
Word bench神戸の紹介
Word bench神戸の紹介Word bench神戸の紹介
Word bench神戸の紹介
BREN
 
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
Hiroyuki Ogawa
 

Similar to メニューは管理画面で設定できるようにしよう (20)

コード嫌いのためのDreamweaver デザインビューの極意
コード嫌いのためのDreamweaver デザインビューの極意コード嫌いのためのDreamweaver デザインビューの極意
コード嫌いのためのDreamweaver デザインビューの極意
 
雑食系エンジニアの作りかた
雑食系エンジニアの作りかた雑食系エンジニアの作りかた
雑食系エンジニアの作りかた
 
doshirouto2014のcssだけを改造して子テーマを作る、最速手抜きカスタマイズ (初級)
doshirouto2014のcssだけを改造して子テーマを作る、最速手抜きカスタマイズ (初級)doshirouto2014のcssだけを改造して子テーマを作る、最速手抜きカスタマイズ (初級)
doshirouto2014のcssだけを改造して子テーマを作る、最速手抜きカスタマイズ (初級)
 
デザイナーとプログラマーの 仲良し大作戦
デザイナーとプログラマーの 仲良し大作戦デザイナーとプログラマーの 仲良し大作戦
デザイナーとプログラマーの 仲良し大作戦
 
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考えるテーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
 
Dreamweaver
コードヒントHowTo
Dreamweaver
コードヒントHowToDreamweaver
コードヒントHowTo
Dreamweaver
コードヒントHowTo
 
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
 
MT DDC Tokyo テーマ編 - 森和恵
MT DDC Tokyo テーマ編 - 森和恵MT DDC Tokyo テーマ編 - 森和恵
MT DDC Tokyo テーマ編 - 森和恵
 
開発者のためのUIデザイン入門
開発者のためのUIデザイン入門開発者のためのUIデザイン入門
開発者のためのUIデザイン入門
 
2014年 失敗しない! WordPress 多言語サイト制作で絶対に知っておきたいこと
2014年 失敗しない! WordPress 多言語サイト制作で絶対に知っておきたいこと2014年 失敗しない! WordPress 多言語サイト制作で絶対に知っておきたいこと
2014年 失敗しない! WordPress 多言語サイト制作で絶対に知っておきたいこと
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
 
工数削減! 印刷物デザイナーに知ってほしい コスパの良いWebデザイン.pdf
工数削減! 印刷物デザイナーに知ってほしい コスパの良いWebデザイン.pdf工数削減! 印刷物デザイナーに知ってほしい コスパの良いWebデザイン.pdf
工数削減! 印刷物デザイナーに知ってほしい コスパの良いWebデザイン.pdf
 
Markdownでドキュメント作成
Markdownでドキュメント作成Markdownでドキュメント作成
Markdownでドキュメント作成
 
Word bench神戸の紹介
Word bench神戸の紹介Word bench神戸の紹介
Word bench神戸の紹介
 
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
[WordBench東京7月] レスポンシブWebデザインの基礎とWordPressを使った最適化の手法
 
書籍制作フローを変える「ReVIEW」という解
書籍制作フローを変える「ReVIEW」という解書籍制作フローを変える「ReVIEW」という解
書籍制作フローを変える「ReVIEW」という解
 
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろうPHPとフロントのイイ関係・動くスタイルガイドをつくろう
PHPとフロントのイイ関係・動くスタイルガイドをつくろう
 
最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介最近のフロントエンドツールの紹介
最近のフロントエンドツールの紹介
 
福井で「しあわせデザイナー」になるために
福井で「しあわせデザイナー」になるために福井で「しあわせデザイナー」になるために
福井で「しあわせデザイナー」になるために
 
知っておきたい「Web制作イマドキの注目ポイント」
知っておきたい「Web制作イマドキの注目ポイント」知っておきたい「Web制作イマドキの注目ポイント」
知っておきたい「Web制作イマドキの注目ポイント」
 

Recently uploaded

Recently uploaded (11)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

メニューは管理画面で設定できるようにしよう