Guten Tag,
ich möchte in einem Menü sowohl das Artikelbild der Seiten (thumbnails) als auch die Beschreibung Anzeigen lassen.
(Es sollen im "Team-Menü" die Mitarbeiterbilder und ihre Telefonnummern angezeigt werden)
Ich habe also in meiner function.php
die Thumbnails aktiviert.
und diese class eingebaut (copy n paste von hier: http://wordpress.stackexchange.com/questions/1614…ith-custom-menu )
class Thumbnail_Walker extends Walker_Nav_Menu
{
/**
* Start the element output.
*
* @param string $output Passed by reference. Used to append additional content.
* @param object $item Menu item data object.
* @param int $depth Depth of menu item. May be used for padding.
* @param array $args Additional strings.
* @return void
*/
function start_el(&$output, $item, $depth, $args)
{
$classes = empty ( $item->classes ) ? array () : (array) $item->classes;
$class_names = join(
' '
, apply_filters(
'nav_menu_css_class'
, array_filter( $classes ), $item
)
);
! empty ( $class_names )
and $class_names = ' class="'. esc_attr( $class_names ) . '"';
$output .= "<li id='menu-item-$item->ID' $class_names>";
$attributes = '';
! empty( $item->attr_title )
and $attributes .= ' title="' . esc_attr( $item->attr_title ) .'"';
! empty( $item->target )
and $attributes .= ' target="' . esc_attr( $item->target ) .'"';
! empty( $item->xfn )
and $attributes .= ' rel="' . esc_attr( $item->xfn ) .'"';
! empty( $item->url )
and $attributes .= ' href="' . esc_attr( $item->url ) .'"';
// insert thumbnail
// you may change this
$thumbnail = '';
if ( has_post_thumbnail( $item->object_id ) ) {
$thumbnail = get_the_post_thumbnail( $item->object_id, array(150,150) );
}
$title = apply_filters( 'the_title', $item->title, $item->ID );
$item_output = $args->before
. "<a $attributes>"
. $args->link_before
. $title
. '</a> '
. $args->link_after
. '<br /> '
. $thumbnail
. $args->after;
// Since $output is called by reference we don't need to return anything.
$output .= apply_filters(
'walker_nav_menu_start_el'
, $item_output
, $item
, $depth
, $args
);
}
}
Alles anzeigen
Dann im Theme das menü aufgerufen
Super läuft, die Mitarbeiter Bilder werden angezeigt.
Als nächstes möchte ich die Beschreibungen die man im Menü eingeben kann anzeigen.
Dafür habe ich
class My_Nav_Menu_Walker extends Walker_Nav_Menu
{
function start_el(&$output, $item, $depth, $args)
{
global $wp_query;
$class_names = $value = '';
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$class = in_array('current-menu-item', $classes) ? ' class="active"' : '';
$output .= '<li>';
$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
$attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
$attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
$attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
$item_description = !empty($item->description) ? esc_attr($item->description) : '';
$item_output = $args->before;
$item_output .= '<a'.$class. $attributes .'>';
$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
$item_output .= '<span>'.$item_description.'</span>';
$item_output .= '</a>';
$item_output .= $args->after;
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}
Alles anzeigen
gefunden, wenn ich NUR diesen walker aufrufe, geht der auch. Doch wie mache ich es das beide gelichzeigt laufen?
gibt es eine art "walker1 & walker2" befehl?
Oder hat jemand noch einen Ansatz?
Ich habe leider auch nichts gefunden um die Beschreibung welche ich auf der Seite verfassen kann aka "Auszug" im menü Anzuzeigen - was ich besser finden würde, als im Menü-bau noch mal eine Beschreibung einzufügen.
Danke