web-dev-qa-db-fra.com

Comment accrocher wp_list_pages?

Comment puis-je associer la fonction wp_list_pages afin qu’elle lise la valeur d’un champ personnalisé et l’affiche au lieu d’afficher le titre de la page?

3
Mohamed Said

Une rapide recherche Google a abouti avec this

Source

Essayez ce qui suit:

function wp_list_pages_filter($output) {
    // modify $output here, it's a string of <li>'s by the looks of source
    return $output;
}
add_filter('wp_list_pages', 'wp_list_pages_filter');
2
Zack

Une extension de classe Walker serait nécessaire dans ce cas:

class My_Custom_Walker extends Walker_page {
function start_el(&$output, $page, $depth, $args, $current_page) {
    if ( $depth )
        $indent = str_repeat("\t", $depth);
    else
        $indent = '';

    extract($args, EXTR_SKIP);
    $output .= $indent . 
            '<li><div>' . get_post_meta($post_id, $key, $single) . '</div></li>';

} // End start_el
} // End Walker Class

Ensuite, lorsque vous utilisez votre fonction wp_list_pages , vous appelez la classe:

// Call class:
$My_Walker = new My_Custom_Walker();

$args = array(
    'walker'      => $My_Walker
);

wp_list_pages( $args );

La documentation sur ce sujet est un peu rare, alors laissez-moi savoir si vous avez besoin de plus d'aide.

7
AlxVallejo

Vous pouvez transmettre votre propre lecteur personnalisé comme argument, utilisez-le pour transmettre un lecteur qui étend Walker_Page et utilise votre propre titre personnalisé.

2
mor7ifer