2017-09-15 2 views
0

setzen Der Titel sagt so ziemlich alles. Was ich tun möchte, ist in der Lage, einen benutzerdefinierten Aufzählungspunkt vor jedem meiner Links, abgesehen von dem ersten, zu platzieren. Gibt es eine Möglichkeit, das wp_nav_menu() zu öffnen; Schleife und fügen Sie dort Inhalt hinzu?Wie HTML-Inhalt zwischen Links mit der wp_nav_menu-Funktion

Das ist mein nav:

<?php wp_nav_menu(array('theme_location' => 'head_nav' , 'menu_class' => 'header_nav')); ?> 

Es ist im Grunde eine Ausgabe wie folgt aus:

<ul> 
    <li><a href="#"></a></li> 
    <li><a href="#"></a></li> 
    <li><a href="#"></a></li> 
    <li><a href="#"></a></li> 
</ul> 

aber ich möchte dies:

<ul> 
    <li><a href="#"></a></li> 
    <li><div class="custom_bullet"></div><a href="#"></a></li> 
    <li><div class="custom_bullet"></div><a href="#"></a></li> 
    <li><div class="custom_bullet"></div><a href="#"></a></li> 
</ul> 

here's what I want

+0

Sie können sich wahrscheinlich durch CSS und keine Wordpress-Funktionen tun. Wie sieht dieses _custom bullet _ _ aus? – hungerstar

+0

@hungerstar Ich dachte daran zu verwenden: vor {content: ""} aber ich brauche eine farbige Kugel mit abgerundeten Ecken. Du denkst das ist möglich? – Reece

+0

Können Sie bitte ein Bild der Kugel zu Ihrem Beitrag hinzufügen? – hungerstar

Antwort

2

Um Platz Kugeln mit abgerundeten Ecken Sie und gelten machen ein quadratisches Element border-radius . Dies kann mit Pseudoelementen erreicht werden, anstatt zusätzliches Markup mit wp_nav_menu hinzuzufügen. Male die Kugeln mit background-color. Nehmen Sie Anpassungen nach Bedarf vor.

ul { 
 
    margin: 0; 
 
    padding: 0; 
 
    list-style: none; 
 
} 
 

 
ul li { 
 
    display: inline; 
 
} 
 

 
ul li::before { 
 
    content: ''; 
 
    display: inline-block; 
 
    position: relative; 
 
    top: -1px; 
 
    margin-right: 0.5rem; 
 
    width: 7px; 
 
    height: 7px; 
 
    vertical-align: middle; 
 
    background-color: darkgray; 
 
    border-radius: 2px; 
 
} 
 

 
ul li:nth-child(1)::before { 
 
    background-color: indianred; 
 
} 
 
ul li:nth-child(2)::before { 
 
    background-color: gold; 
 
} 
 
ul li:nth-child(3)::before { 
 
    background-color: seagreen; 
 
} 
 
ul li:nth-child(4)::before { 
 
    background-color: dodgerblue; 
 
}
<ul> 
 
    <li>One</li> 
 
    <li>Two</li> 
 
    <li>Three</li> 
 
    <li>Four</li> 
 
</ul>

+0

danke, aber wäre ich in der Lage, ein Quadrat mit abgerundeten Ecken zu machen? – Reece

+0

@hungestar Großartig! Danke für die Hilfe – Reece

-1

Sie hinzufügen Klassen zu jedem li durch Wordpress. So geht's: https://presscustomizr.com/snippet/adding-css-classes-wordpress-menu/

Auf diese Weise können Sie die class="custom_bullet" hinzufügen, die Sie benötigen.

Auch als hungerstar vorgeschlagen, kann :before der Trick

+0

Dies würde ein Aufzählungszeichen vor allen Links anzeigen ... OP möchte nicht, dass der erste Link ein Aufzählungszeichen hat, also müssten Sie eine benutzerdefinierte CSS-Regel hinzufügen, um das erste Aufzählungszeichen zu verbergen ... Eine CSS-einzige Lösung wäre viel besser Option in diesem Fall. – Matthew

0

Sie können "vor" verwenden: https://developer.wordpress.org/reference/functions/wp_nav_menu/

wp_nav_menu( 
    array( 
     'theme_location' => 'head_nav', 
     'menu_class' => 'header_nav', 
     'before' => '<div class="custom_bullet"></div>' 
    ) 
); 
+0

Dies würde ein Aufzählungszeichen vor allen Links anzeigen ... OP möchte nicht, dass der erste Link ein Aufzählungszeichen hat, also müssten Sie eine benutzerdefinierte CSS-Regel hinzufügen, um das erste Aufzählungszeichen zu verbergen ... Eine CSS-Lösung wäre viel besser Option in diesem Fall. – Matthew

+0

Ich stimme zu, dass CSS nur Lösung ist besser, aber meine Antwort ist direkt für die Frage. Er möchte div Element vor jedem Link einfügen und Code genau dies tun. Deine Aussage ist nicht wahr. Der Wert in der Taste "before" wird vor jeder Verknüpfung und nicht in der gesamten Liste angezeigt. Warum dann runterziehen? –

+0

Ich lese Ihren Kommentar noch einmal und ich muss sagen, dass ich es zunächst nicht vollständig verstehe. Richtig gehört dir. –

Verwandte Themen