我已经创建了一个分层的自定义分类法(位置),并希望:a)显示一个符合层次结构的无序列表b)自定义显示输出,以便指定自定义url
下面是我使用的代码,包括我输出的两种不同方式。
<?php
$args = array(
\'taxonomy\' => \'locations\',
\'orderby\' => \'name\',
\'hide_empty\' => 0,
\'title_li\' => \'\',
\'hierarchical\' => 1,
\'walker\' => null,
);
?>
// The following gives me the hierarchical display
<ul class="menu">
<?php wp_list_categories( $args ); ?>
</ul>
// And this gives me the customized links
<?php
$categories = get_categories($args);
foreach($categories as $category) {
echo \'<li><a href="http://website.com/?ls=&location=\' . $category->slug . \'">\' . $category->name.\'</a></li>\';
}
?>
问题是这两种情况都会发生。
有什么解决方案吗?我猜这可能是一个定制的步行者,但如果没有一点指导,我还不知道该怎么办!!
SO网友:jwyson
使用以下自定义助行器解决了此问题:
class CustomWalker extends Walker_Category {
function start_el(&$output, $item, $depth=0, $args=array()) {
$output .= "\\n<li><a href=\\"http://website.com/?ls=&location=" . $item->slug . "\\">".esc_attr($item->name);
}
function end_el(&$output, $item, $depth=0, $args=array()) {
$output .= "</li>\\n";
}
}
SO网友:rudtek
我可能理解错误,但您不需要wp\\U list\\U类别。(您的编码也缺少一些详细信息)。
这能行吗?:
<?php
$args = array(
\'taxonomy\' => \'locations\',
\'orderby\' => \'name\',
\'hide_empty\' => 0,
);
?>
// And this gives me the customized links
<?php
$categories = get_categories($args);
echo \'<ul class="menu">\';
foreach($categories as $category) {
echo \'<li><a href="http://website.com/?ls=&location=\' . $category->slug . \'">\' . $category->name.\'</a></li>\';
}
echo \'</ul>\';
?>