wp_nav_menu()、<li>クラスを変更する方法は?
-
-
ここで、ul> li> aに異なるクラスを追加できます https://sdtuts.com/wordpress-add-custom-class-in-wp_nav_menu-links/Here you can add different class in ul > li >a https://sdtuts.com/wordpress-add-custom-class-in-wp_nav_menu-links/
- 0
- 2018-06-09
- Rameez SOOMRO
-
4 回答
- 投票
-
- 2011-12-26
カスタムウォーカーを使用して、不要なものをすべて削除し、クラスを追加します.クリーンなマークアップのリストを取得するために使用するウォーカーは次のとおりです: T5_Nav_Menu_Walker_Simple .
'nav_menu_css_class'
または'wp_nav_menu_items'
をフィルタリングすることもできます.しかし、私の意見では、ウォーカークラスの方が理解しやすく、管理しやすいです.Use a custom walker, remove anything you don’t need and add your classes. Here is a walker I use to get a list with clean markup: T5_Nav_Menu_Walker_Simple.
Your could also filter
'nav_menu_css_class'
or'wp_nav_menu_items'
. But a walker class is easier to understand and to control in my opinion.-
Toschoのおかげで、新しいバージョンのWordpress(3.3)では、問題を解決するために、各メニュー項目にカスタムクラスを追加できることがわかりました.私はあなたが私に提案したスクリプト(T5_Nav_Menu_Walker_Simple)を試しましたが、これは `
- `からすべてを取り除きますが、どの要素を保持するかをどのように制御できますか?
Thanks Toscho, I just find that in the new version of Wordpress (3.3) we can add custom class fir each menu items wich kind of solve my problem. I tried the script you suggested to me (T5_Nav_Menu_Walker_Simple) which does strip everything from the `- `, how can we control which elements we want to keep?
- 0
- 2011-12-26
- Christian
-
@Christian必要に応じてウォーカーを変更できます.これは、非常に基本的な例です.利用可能な情報を確認するには、各 `li`に`print_r($item、TRUE) `を追加します.次に、それをどうするかを決定します.:)@Christian You can change the walker as you need, it is just a very basic example. To see which information is available, add a `print_r( $item, TRUE )` to each `li`. Then decide what to do with it. :)
- 1
- 2011-12-26
- fuxia
-
これは私を正しい方向に向けました.必要なのは** wp_nav_menu **でしたが、**しかし**特定のユースケースで機能するように 'container_class'パラメーターを変更する必要がありました.別のメニューですが、クラスがcssで一貫している必要がありました.This pointed me in the right direction, what I needed was the **wp_nav_menu**, **but** I needed to change the 'container_class' parameter, to work for my particular use case, where I on some condition swapped the main menu for another one, but needed the classes to be consistent for css.
- 0
- 2018-01-25
- D. Dan
-
-
- 2019-04-22
ブートストラップ4.3で必要なため、
<li>
クラスをnav-link
に設定します.function add_menu_link_class($atts, $item, $args) { $atts['class'] = 'nav-link'; return $atts; } add_filter('nav_menu_link_attributes', 'add_menu_link_class', 1, 3);
その配列の
id
属性の設定を解除することもできます.Setting the
<li>
class tonav-link
, as bootstrap 4.3 needs it:function add_menu_link_class($atts, $item, $args) { $atts['class'] = 'nav-link'; return $atts; } add_filter('nav_menu_link_attributes', 'add_menu_link_class', 1, 3);
You can also unset the
id
attribute in that array. -
- 2013-06-13
最後に述べたように、画面オプションでCSSクラスにチェックマークを付けて、外観>メニューから独自のクラスを追加できます.ウォーカーでは、次の方法で入力内容にアクセスできます.
$item_output .= '<a'. $attributes .' class="'. $item->classes[0].'">';
これを使用して、メニューに名前の付いた画像を追加しました.少し薄っぺらですが、機能します.
<img src="theme/images/navigation/'.$item->classes[0].'" width="48" height="48">
As the last poster mentioned, you can add your own classes via appearance > menus with CSS classes ticked in the screen options. In the walker, you can access what you enter there via:
$item_output .= '<a'. $attributes .' class="'. $item->classes[0].'">';
I have even used this to add pre-named images in the menu - a little flakey, but it works.
<img src="theme/images/navigation/'.$item->classes[0].'" width="48" height="48">
自分のウェブサイトのメニューを作成しています.スタティックは次のようになります:
自動
<ul>
タグを削除するために、<div>
タグをカスタマイズする方法を理解できました.しかし今、私は<li>
タグをカスタマイズして、CSSを介して特定の動作を制御するために異なるclass
名を割り当てることができるようにしたいと思います.wp_nav_menu()
を使用すると、出力は次のようになります.<li>
タグの<li>
を削除し、ページの名前を反映するようにclass
を変更したいリンクしたいです.基本的に、この投稿の最初のコードスニペットと同じものを出力したいと思います.これを行う理由は、プレーンテキストではなくCSSによって制御されるカスタム画像を使用しているためです.
これは可能ですか?この問題を克服するためにどのような戦略を使用する必要がありますか?