web-dev-qa-db-fra.com

rest_post_query sur plusieurs types de post?

comment faire en sorte que le filtre rest_post_query fonctionne sur plusieurs types de publication? J'aimerais modifier orderby pour tous les types de publication, mais pour le moment je dois spécifier "publication" dans le nom du filtre, ce qui signifie que cela ne fonctionne pas sur les types de publication personnalisés que j'ai créés?

add_filter("rest_post_query", function ($args) {

    $args["orderby"] = "menu_order";
    $args["order"] = "ASC";

    return $args;

}, 10, 2);
2
harte11

Définissez le rappel en tant que fonction nommée et décrochez-le séparément pour chaque type de publication.

function wpse_299908_order_rest_query( $args ) {
    $args['orderby'] = 'menu_order';
    $args['order'] = 'ASC';

    return $args;
}
add_filter( 'rest_post_query', 'wpse_299908_order_rest_query' );
add_filter( 'rest_page_query', 'wpse_299908_order_rest_query' );

Aucun filtre ne s'applique automatiquement à tous les points de terminaison, probablement pour la même raison que vous ne pouvez pas interroger plusieurs types de publication à la fois. Comme discuté pendant le développement de l'API:

Étant donné que chaque type de publication personnalisé est modélisé différemment, il n'est pas possible de les extraire du même point de terminaison dans v2. Conceptuellement, c'est comme chercher des utilisateurs et des publications du même point final - cela n'a pas beaucoup de sens.

1
Jacob Peattie