Je veux prévisualiser tous les champs contenus dans le tableau de navigation $ item. Existe-t-il une fonction permettant de le récupérer n'importe où et de le placer dans var_dump?
Les éléments sont configurés dans wp_nav_menu()
. Il existe un filtre utile que vous pouvez utiliser: 'wp_nav_menu_objects'
. Il propose les éléments sous la forme $sorted_menu_items
et les arguments de l'appel wp_nav_menu()
sous la forme $args
.
De wp-includes/nav-menu-template.php::wp_nav_menu()
:
$sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );
Alors …
$sorted_menu_items
inchangé etDans mon exemple suivant, j’imprime les données sur 'shutdown'
- c’est le dernier crochet que WordPress lance.
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Collect Nav Menu Items
* Description: Appends debug information about currently processed nav menu items to pages.
*/
add_filter( 'wp_nav_menu_objects', array ( 'T5_Nav_Menu_Collector', 'collect' ), 99, 2 );
class T5_Nav_Menu_Collector
{
/**
* Stores the data
* @type array
*/
protected static $collection = array ();
/**
* Collect nav menu data.
*
* @wp-hook wp_nav_menu_objects
* @param array $sorted_menu_items
* @param array $args
* @return array $sorted_menu_items Not changed.
*/
public static function collect( $sorted_menu_items, $args )
{
// Since we *know* we have data, we register the print action.
add_action( 'shutdown', array ( __CLASS__, 'print_collection' ) );
self::$collection[] = array(
'args' => $args,
'items' => $sorted_menu_items
);
return $sorted_menu_items;
}
/**
* Dump the collected data.
*
* @wp-hook shutdown
* @return void
*/
public static function print_collection()
{
$output = htmlspecialchars( print_r( self::$collection, TRUE ) );
print "<pre><b>Nav Menu Data</b>\n\n$output</pre>";
}
}
S'il n'y a pas de menu de navigation, rien ne se passe. Mais si nous pouvions collecter des données, nous obtenons une longue liste de Nice à la fin d'un document avec toutes les propriétés d'élément que nous pouvons utiliser dans d'autres filtres.