「設定しているタイトルが表示」ということは、
設定している場所を消してしまえばいいと思うのですが、
そのタイトルはどこから設定しているものなのでしょうか。
「管理画面>外観>メニュー」の画面の、下記の設定を変えることで消えませんか?
###追記
とりあえずaタグのtitle属性を消すのであれば、下記のコードで実現できるはずです。
PHP
1function my_nav_menu_link_attributes( $atts, $item, $args, $depth ) {
2
3 $atts['title'] = '';
4
5 return $atts;
6}
7add_filter('nav_menu_link_attributes', 'my_nav_menu_link_attributes', 99, 4);
8// 注:WordPress 4.7.2では引数は4、WordPress 4.1.0で$depthが追加になって引数の個数が変わっている
###追記2
文章が長くなりましたが、簡潔に説明ができない説明下手な人間ということで勘弁してください。
説明してほしかった点とずれているという場合には遠慮なくツッコミを入れてください。
####エラー解消法がわかった経緯
「Warning: Missing argument 4 for my_nav_menu_link_attributes(), called in ○○/○○ on line 298 and defined in ●●/●● on line 15」は、簡単にいえば、「引数の数があいませんよ」というエラー(この場合はwarningですが)です。
この場合は、my_nav_menu_link_attributes
関数の持つ引数の個数と、フィルターnav_menu_link_attributes
が持つ引数の個数があわないという意味になります。
(WordPressにおけるフィルターに関する基本的な知識はここでは割愛しますので、ググってみてください。様々なサイトで解説されています)
私がmy_nav_menu_link_attributes
関数を書いたとき、WordPressのコアwp-includes\class-walker-nav-menu.php
のstart_el
関数を見て、「nav_menu_link_attributes
フィルターの引数は4つだな」と思って、最初に提示したコードを書きました。
しかし、上記のエラーが出たということで、「あれ?」と思い、ソースに付記されたnav_menu_link_attributes
フィルターの説明を読むと、$depth
パラメータが最近(WP Ver.4.1.0で)追加されたことがわかりました。
ですから、「もしかして、WordPressのバージョンが違うのかなあ」と思い、バージョンを尋ねるコメントを書きました。
ただよく見ると質問文にWP Ver.4.7.2と書かれていたので、「あれ、引数の個数があわないはずないんだけどな」と思いつつ、念のため、$depth
を消して、引数を4から3に変更してみてもらおうと思ってコメントを書いた次第です。
####nav_menu_link_attributesとは?
カスタムメニューを生成する際に、aタグの属性(attributes)をフィルターするフィルターです。
wp-includes\class-walker-nav-menu.php
のstart_el
関数でapply_filter
されています。
my_nav_menu_link_attributes
関数内で、var_dump($atts);
すると、aタグに適用されるclass
やtitle
などが渡されていることがわかります。
今回はそのうち、$atts['title']
に空文字列を代入して、title
属性を強制的に出力させないようにしています。