user
  • 0
Гуру

Фильтр Get_bookmarks не предоставляет аргумент запроса (wp 3.1)

  • 0

Я использую фильтр в функции get_bookmarks. Когда я использую два аргумента в своей функции фильтра, я получаю массив результатов и ничего для второго аргумента (это должен быть проанализированный запрос).

Вот что я имею в виду:

function samiconductor_sort_links_by_order( $results, $args ) {
    echo print_r($args); // nothing

    function order($a, $b) {
        $a_order = get_option( "link_order_$a->link_id", 0 );
        $b_order = get_option( "link_order_$b->link_id", 0 );

        if ( $a_order == $b_order ) {
            return 0;
        }
        return ( $a_order > $b_order ) ? -1 : 1;
    }

    usort( $results, order );

    return array_reverse($results);
}
add_filter( 'get_bookmarks', 'samiconductor_sort_links_by_order' );

А вот и функция get_bookmarks — исходник.

Как видите, он должен передать $r = wp_parse_args($args, $defaults); в качестве второго аргумента фильтра.

Я что-то пропустил?

Спасибо

Share
  1. По умолчанию add_filter() указывает WP передавать только первый параметр в вашу перехваченную функцию. Если вы хотите больше, вам нужно указать это (и приоритет, который наступает раньше и по умолчанию равен 10):

    add_filter( 'get_bookmarks', 'samiconductor_sort_links_by_order', 10, 2 );
    
    • 0

Оставить ответ

You must login to add an answer.