Pour une catégorie particulière, je devais fusionner dans un autre type de publication personnalisé. Maintenant, je voudrais recourir à la requête basée sur un champ personnalisé. Est-ce possible?
Vous trouverez ci-dessous la façon dont j'ai fusionné les requêtes.
if (in_category( 'Events' ) && is_archive()) {
global $wp_query;
$args = array (
'post_type' => 'custom_post_type'
);
$second_query = new WP_Query( $args );
$wp_query->posts = array_merge( $wp_query->posts, $second_query->posts );
$wp_query->post_count = $wp_query->post_count + $second_query->post_count;
}
Merci!
Étant donné que la méta est mise en cache dans le chargement de la page, il devrait être raisonnablement performant de le faire comme ceci (non testé):
usort( $wp_query->posts, function ( $post_a, $post_b ) {
$a = get_post_meta( $post_a->id, 'key', true );
$b = get_post_meta( $post_b->id, 'key', true );
if ( $a == $b ) {
return 0;
}
return ( $a < $b ) ? - 1 : 1;
} );
Il serait peut-être plus raisonnable de modifier les entrées de la requête avant son exécution, conformément aux commentaires.