我想修改在导航中列出页面的方式,特别是wp- el_start /classes.php中的函数classes.php。
我首先直接修改了classes.php,它工作得很好,但现在我想恢复classes.php,并将修改移出wordpress的内部文件。
我写了一个walker类,我想使用它,但我不知道如何使用它。我想将当前的wp_list_pages()调用替换为:
$walker_pages = new Walker_Page_CustomTitle;
wp_list_pages(array('walker' => $walker_pages, 'title_li' => '', 'depth' => '1'));我尝试过使用这样的过滤器:
function wp_list_pages_custom() {
$walker_pages = new Walker_Page_CustomTitle;
wp_list_pages(array('walker' => $walker_pages, 'title_li' => '', 'depth' => '1'));
}
add_filter('widget_area_primary_aside', 'wp_list_pages_custom');但使用此筛选器,网站将不再加载。
教程here告诉我应该把这段代码放在header.php中,但这只是把我的页面链接放在了标签中。
我希望我说得有道理。谢谢。
发布于 2010-05-29 00:24:26
如果wp_list_pages()在执行任何进一步的代码之前对传递的参数进行筛选,那将是最理想的。
然而,我所能看到的最好的方法是,简单地使用wp_list_pages()而不传递walker参数就可以使用walker,如下所示;
function my_custom_wp_pages($list, $args)
{
$walker = new Walker_Page_CustomTitle;
$args = array_merge($args, array('walker' => $walker, 'echo' => false);
remove_filter('wp_list_pages', 'my_custom_wp_pages'); // avoid endless loop
$list = wp_list_pages($args);
add_filter('wp_list_pages', 'my_custom_wp_pages'); // add it back
return $list;
}
add_filter('wp_list_pages', 'my_custom_wp_pages', 5, 2);更新:
编辑add_filter调用以接受两个参数。
https://stackoverflow.com/questions/2930639
复制相似问题