🧭 1. ナビゲーションメニュー(wp_nav_menu())
🔹 自動生成される構造
<ul id="menu-header-menu" class="menu">
<li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item">
<a href="/about/">会社概要</a>
</li>
</ul>
🔸 自動付与される主なクラス・ID一覧
| 要素 | 自動付与属性 | 説明 |
|---|
<ul> | id="menu-{スラッグ}" | メニュー名(スラッグ)が自動反映される。 |
| class="menu" | すべてのメニュー共通。 |
<li> | id="menu-item-{番号}" | メニュー登録時に自動で採番。 |
| class="menu-item" | 全項目共通。 |
| menu-item-type-{type} | 投稿タイプなど。例:menu-item-type-post_type / menu-item-type-custom |
| menu-item-object-{object} | 対象オブジェクト名。例:menu-item-object-page |
| current-menu-item | 現在表示中のページがそのメニュー項目と一致。 |
| current-menu-parent | 現在のページの親要素である場合。 |
| current-menu-ancestor | 祖先階層にあたる場合。 |
<a> | 基本的にクラスなし(カスタム可) | nav_menu_link_attributes フィルターで追加可能。 |
🔸 クラスを追加・変更する方法
wp_nav_menu([
'theme_location' => 'header',
'menu_class' => 'my-header-menu',
'menu_id' => 'global-nav',
]);
🧱 2. ウィジェット領域(register_sidebar() → dynamic_sidebar())
functions.phpでウィジェット領域を登録した場合:
register_sidebar([
'name' => 'サイドバー',
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
]);
🔹 出力結果例
<aside id="text-2" class="widget widget_text">
<h2 class="widget-title">テキストウィジェット</h2>
<p>内容...</p>
</aside>
🔸 自動付与クラス・ID
| 要素 | 自動付与属性 | 説明 |
|---|
<aside> | id="ウィジェットタイプ-番号" | 例:id="text-2" |
| class="widget widget_{タイプ}" | 例:class="widget widget_text" |
<h2> | class="widget-title" | タイトル部分。 |
🏠 3. <body> タグのクラス(body_class())
WordPressはページの種類に応じて自動で多くのクラスを付与します。
🔹 例
<body class="home blog logged-in admin-bar no-customize-support">
🔸 主なクラス
| クラス | 意味 |
|---|
home | トップページ |
blog | 投稿一覧ページ |
single | 投稿ページ(個別記事) |
page | 固定ページ |
archive | アーカイブページ |
category-{スラッグ} | カテゴリページ |
tag-{スラッグ} | タグページ |
author-{スラッグ} | 投稿者ページ |
logged-in | ログイン済みユーザー |
admin-bar | 管理バーが表示中 |
custom-background | カスタム背景有効時 |
🔸 カスタムクラスを追加する方法
add_filter('body_class', function ($classes) {
$classes[] = 'my-theme';
return $classes;
});
📄 4. <post> 出力(ループ内)
the_post() 内で出力される記事は、post_class() によってクラスが付与されます。
🔹 出力例
<article id="post-12" class="post-12 post type-post status-publish format-standard category-news">
🔸 自動付与されるクラス
| クラス | 意味 |
|---|
post-{ID} | 投稿ID |
type-{投稿タイプ} | post, page, custom post type |
status-{ステータス} | publish, draft, private など |
format-{投稿フォーマット} | standard, image, quote など |
category-{スラッグ} | 投稿のカテゴリ |
tag-{スラッグ} | タグ |
🧰 5. カスタマイズのヒント
| 対象 | カスタマイズ方法 |
|---|
| メニュー項目 | nav_menu_css_class, nav_menu_item_id フィルター |
| メニューリンク | nav_menu_link_attributes フィルター |
| ウィジェット | before_widget, after_widget |
| body | body_class フィルター |
| 投稿 | post_class フィルター |
✅ まとめ
| 対象 | 関数 | 主な自動クラス/ID |
|---|
| メニュー | wp_nav_menu() | menu-item, current-menu-item など |
| ウィジェット | dynamic_sidebar() | widget, widget_text など |
| body | body_class() | home, single, category-news など |
| 投稿 | post_class() | post-12, category-news など |
コメント