我制作了一个自定义的walker,用于wp\\u list\\u页面,修改输出以显示缩略图。目标是在页面模板中显示一个列表,其中列出了所有子级及其子级。
我下面的walker似乎可以获取缩略图和页面标题,但无法获取页面的url。我是否需要使用get
带前缀的函数,而不是esc_attr
?
class bio_walker extends Walker_Nav_Menu
{
function start_el(&$output, $item, $depth, $args)
{
$output .= "<li id=\'menu-item-$item->ID\' class=\'bio-list\'>";
$attributes = "class=\'highlight-$item->ID\'";
! 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 ) .\'"\';
$pageid = get_post_meta ( $item->ID, \'_menu_item_object_id\', true);
$thumbnail = get_the_post_thumbnail( $item->ID, \'bio-thumb\', true);
$title = get_the_title($item->ID);
$spanclass = "class=\'span-$item->ID bio-list-span\'";
$item_output = $args->before
. "<a $attributes>"
. $thumbnail
. "<span $spanclass>"
. $title
. $pageid
. "</span>"
. \'</a> \';
$output .= apply_filters(
\'walker_nav_menu_start_el\'
, $item_output
, $item
, $depth
, $args
);
}
}