Как использовать ходунки для замены основной функции - PullRequest
0 голосов
/ 28 мая 2010

Я хочу изменить способ отображения страниц в навигации, в частности функцию el_start из wp-includes / classes.php.

Сначала я напрямую изменил classes.php, и он работал нормально, но теперь я хочу вернуть файл classes.php и переместить изменение из внутренних файлов wordpress.

Я написал уокер-класс, который хочу использовать, но не знаю, как его использовать. Я хочу заменить текущий вызов 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');

Но с этим фильтром сайт больше не будет загружаться.

В руководстве здесь говорится, что я должен поместить этот код в header.php, но он просто помещает ссылки на мои страницы в тег.

Надеюсь, я понимаю. Спасибо.

1 Ответ

0 голосов
/ 28 мая 2010

Было бы идеально, если бы wp_list_pages() имел фильтр переданных аргументов, прежде чем он выполнял какой-либо дополнительный код.

Тем не менее, наилучший подход, который я вижу, в котором простое использование wp_list_pages() без передачи аргумента ходунка использует Ваш ходок такой же;

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);

UPDATE:

Отредактировал вызов add_filter, чтобы принять два аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...