余計なメニューを消したい

目次を表示させるのに「TOP Table Of Contents」というプラグインを使っています。色々検証した結果、唯一、このプラグインだけがまともな目次を作ってくれます。その話はこちら。

目次プラグインの比較

2023/04/10 最終更新日時 : 2023/04/10 サイノアLightningには目次の機能がないのでプラグインを導入します。この手のものはたくさんあるので適当に選べばいいだろうと思…

その記事にも書きましたが、このプラグインの欠点は、トップのメニューバーに長い文字列で居座ること。

サイドバーにも同じメニューはあるのでトップには不要です。

このプラグインの設定を見ても、トップメニューから消すようなオプションはなさそうです。

ちょっと調べてみたら、割と簡単に消せそうなのでやってみます。少々力技ですが。

まず、あのメニューの名前。あれは「管理バー」とか「アドミンバー(admin bar)」というのだそうです。それがわかれば話は簡単。「wordpress 管理バー 項目削除」などで検索するとたくさん情報が見つかります。

プログラム

大抵の説明では、functions.phpを使うようにあります。でも、この話はテーマに関係したものではない(テーマによらない)ものですので、ここでは別の手段(Code snippetsプラグイン)を使うことにします。結果はどちらでも同じです。

メニューのID を見つける

まずは削除の対象とするのメニューのIDを知らなければなりません。そこで、以下のプログラムを書きます。

function my_remove_admin_bar_menu($wp_admin_bar) {
	print_r($wp_admin_bar);
}

add_action('admin_bar_menu', 'my_remove_admin_bar_menu', 99);

これを書き込んだ瞬間に管理バーに関する変数の情報がダンプされます。

この中から対象のものを見つけます。大変そうに見えますが、「TOP Table Of Contents」を検索すれば見つかります。

「TOP Table」の前に「[id] => boomdevs-toc-settings」という物が見つかりました(赤矢印)。これでしょう。その後ろには「[id] => boomdevs-toc-settings-1」などでサブメニューの情報が並んでいるのもわかります。

対象のメニューを消す

IDがわかっので、それを削除するプログラムを書きます。先程のIDチェックのプログラムを書き換えるだけです。

function my_remove_admin_bar_menu($wp_admin_bar) {
	//print_r($wp_admin_bar);
	$wp_admin_bar->remove_node('boomdevs-toc-settings');
}

add_action('admin_bar_menu', 'my_remove_admin_bar_menu', 99);

これで期待通りに管理バーから「TOP Table Of Contents」が消えました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)