it-swarm.com.de

get_bookmarks-Filter liefert kein Abfrageargument (wp 3.1)

Ich verwende einen Filter für die Funktion get_bookmarks. Wenn ich zwei Argumente in meiner Filterfunktion verwende, erhalte ich das Ergebnisarray und nichts für das zweite Argument (es sollte die analysierte Abfrage sein).

Hier ist was ich meine:

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

Und hier ist die Funktion get_bookmarks - source .

Wie Sie sehen, sollte $ r = wp_parse_args ($ args, $ defaults) übergeben werden. als zweites arg zum filter.

Vermisse ich etwas?

Vielen Dank

1
user4392

Standardmäßig weist add_filter() WP an, nur den ersten Parameter an Ihre Hook-Funktion zu übergeben. Wenn Sie mehr wollen, müssen Sie dies spezifizieren (und die Priorität, die früher kommt und standardmäßig 10 ist):

add_filter( 'get_bookmarks', 'samiconductor_sort_links_by_order', 10, 2 );
3
Rarst