Je vois qu'il y a des points d'ancrage pour manipuler WP_Query avant qu'il ne reçoive ses publications (parse_query, pre_get_posts), mais je n'arrive pas à trouver de points d'ancrage pour après l'objet WP_Query est rempli. J'ai une table personnalisée pour mes métadonnées post-associées spécifiques au plug-in que je voudrais extraire après qu'un objet WP_Query est rempli.
Comme vous n'avez pas indiqué ce que vous essayez d'atteindre et que vous venez de mentionner, vous devez récupérer les données associées. Vous avez deux options pour interroger votre table personnalisée:
L'exemple ci-dessous illustre la première méthode.
<?php
function populate_posts_data( $posts, $query ) {
global $wpdb;
if ( !count( $posts ) )
return $posts; // posts array is empty send it back with thanks.
while ( $posts as $post ) {
// query to get custom post data from custom table
$query = "SELECT * FROM {$wpdb->prefix}my_plugin_table WHERE post_id={$post->ID}";
$results = $wpdb->get_results( $query );
}
return $posts;
}
add_filter( 'the_posts', 'populate_posts_data' );
?>
Pour la seconde méthode, vous devrez regarder posts_where, posts_join, posts_groupby et posts_orderby filters. À titre d'exemple, vous pouvez jeter un coup d'œil aux exemples de colonnes personnalisées triables de @ scribu} _.