私はあなたがこのウェブサイトのように現在のページのメニュー項目を見ることができるメニュー構造を構築したいと思います http://www.bigspaceship.com/services/
私は周りを検索し、私はこれまでに次の機能を持っています
<?php
$menu_items = wp_get_nav_menu_items( 'main-menu' );
foreach( $menu_items as $item ) {
print_r( $item ) ; // see what you can work with
// carry on
}
現在のページのメニュー項目名のみを実際に印刷する方法を教えてください。私はまだダッシュボードからメニュー項目を制御したいのですが、管理者内の各メニューの名前を変更して動的に更新させることができるようにしたいのです。
助けてくれてありがとう。
各メニュー項目内で、object_id
は、メニュー項目が参照するオブジェクトのIDを保持しています。これは投稿/ページ/ CPT /期間IDになります。カスタムリンクの場合、IDはそれ自身を参照します。 (あなたがそれがどんなタイプのオブジェクトであるか知りたいならば、object
はそれを含みます。)
get_queried_object_id()
はあなたに現在のページのIDを与えます。
API関数 wp_filter_object_list()
を使用して、object_id
が照会されたオブジェクトと一致しないメニュー項目を除外することができます。
その後、単一の要素を含む配列を残します。そのため、phpのcurrent
を使用して、$this_item
に一致するメニュー項目オブジェクトのみを含めるようにします。
そして最後に、title
はメニュー項目に付けた名前を保持します。
$menu_items = wp_get_nav_menu_items( 'main-menu' );
$this_item = current( wp_filter_object_list( $menu_items, array( 'object_id' => get_queried_object_id() ) ) );
echo $this_item->title;
注 - 私はこれをテストしていないので、うまくいけばうまくいきます!