Μετάβαση στο περιεχόμενο

Early-bird άδεια εφ’ όρου ζωής: $199 εφάπαξ, μόνο για τους πρώτους 200 αγοραστές. Δείτε την προσφορά

wp_nav_menu_items

Φιλτράρει τα στοιχεία λίστας ενός κλασικού μενού που τυπώνει η wp_nav_menu(). Για να προσθέσετε σύνδεσμο, π.χ. Σύνδεση ή Αποσύνδεση.

  • Τύπος Filter
  • Προέλευση WordPress
  • Από την έκδοση 3.0.0
  • Καλείται στο wp-includes/nav-menu-template.php

Πότε εκτελείται

Το WordPress εφαρμόζει το wp_nav_menu_items μέσα στη wp_nav_menu(), αφού φτιάξει τα στοιχεία ενός μενού και πριν τα τυλίξει στο . Παίρνετε τα στοιχεία ως ενιαία συμβολοσειρά HTML, μαζί με τα ορίσματα που έδωσε το θέμα.

Λειτουργεί μόνο με κλασικά μενού. Τα θέματα μπλοκ χρησιμοποιούν το μπλοκ Πλοήγησης, που δεν καλεί τη wp_nav_menu().

Παράμετροι

Παράμετροι
$itemsstring Το περιεχόμενο HTML της λίστας με τα στοιχεία του μενού.
$argsstdClass Αντικείμενο με τα ορίσματα της wp_nav_menu().

Τι να επιστρέψετε

Τα στοιχεία του μενού ως συμβολοσειρά HTML.

Παράδειγμα: Σύνδεσμος Σύνδεση / Αποσύνδεση στο κύριο μενού

PHP
add_filter( 'wp_nav_menu_items', function ( $items, $args ) {
	if ( 'primary' !== $args->theme_location ) {
		return $items;
	}
	if ( is_user_logged_in() ) {
		$url   = wp_logout_url( home_url( '/' ) );
		$label = __( 'Log out', 'my-snippets' );
	} else {
		$url   = wp_login_url();
		$label = __( 'Log in', 'my-snippets' );
	}
	$items .= sprintf(
		'<li class="menu-item menu-item-login"><a href="%1$s">%2$s</a></li>',
		esc_url( $url ),
		esc_html( $label )
	);
	return $items;
}, 10, 2 );

Καλό να ξέρετε

  • Ελέγξτε το $args->theme_location, ώστε να αλλάζετε μόνο το μενού που θέλετε. Τα ονόματα θέσεων διαφέρουν ανά θέμα· αναζητήστε τη register_nav_menus() στον κώδικα του θέματος.
  • Για να στοχεύσετε ένα μενού με βάση το slug του, χρησιμοποιήστε το φίλτρο wp_nav_menu_{$menu->slug}_items.
  • Αν δεν έχει οριστεί μενού στη θέση, εμφανίζεται η εναλλακτική του θέματος και αυτό το φίλτρο δεν εκτελείται.

Μεταφέρετε τα snippets σας μέσα σε ένα απόγευμα.

Η εισαγωγή δεν αλλάζει τίποτα μέχρι να κάνετε τη μετάβαση, και τα παλιά σας shortcodes συνεχίζουν να λειτουργούν.