WordPress | 独自メニューを作成する

カスタムメニューを登録する

カスタムメニューを登録するには、register_nav_menus を使用する。

引数の配列要素のキーはメニューの識別 ID に使われ、値はメニューの表示名になる。

1
2
3
4
5
6
7
8
9
10
11
class MyCustomMenu
{
public function register_custom_menu() {
register_nav_menus(
array(
'custom_menu_slug' => 'カスタムメニュー',
)
);
}
}
add_action( 'init', array( new SiteRankingMenu(), 'register_custom_menu' ) );

カスタムメニューの内容を表示する

カスタムメニューに登録された内容をシンプルに表示してみる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$menu_name = 'custom_menu_slug';

if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );

$menu_items = wp_get_nav_menu_items($menu->term_id);

$menu_list = '<ul id="menu-' . $menu_name . '">';

foreach ( (array) $menu_items as $key => $menu_item ) {
$title = $menu_item->title;
$url = $menu_item->url;
$menu_list .= '<li><a href="' . $url . '">' . $title . '</a></li>';
}
$menu_list .= '</ul>';
} else {
$menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
}

get_nav_menu_locations

機能

ナビゲーションメニューのアイテムを返す。

書式

1
<?php $items = wp_get_nav_menu_items( $menu, $args ); ?>

wp_get_nav_menu_object

機能

ナビゲーションメニューデータを取得する

書式

1
<?php $menu_item = wp_get_nav_menu_object(  $menu ); ?)>

ナビゲーションメニューが見つかった場合は。そのオブジェクトを返す。オブジェクトは以下のプロパティを持つ。

プロパティ名 データ型 説明
term_id int ID
name string 名前
slug string スラッグ
term_group グループ ID
term_taxonomy_id int タクソノミー ID
taxonomy string タクソノミー名
description string 説明
parent int 親カテゴリー ID
count int メニュー項目数
filter string