Filtrare i post tramite i meta data del post
Voglio filtrare i post in modo che vengano mostrati solo quelli per i quali get_post_meta($post->ID, "project_cat", true)
(che restituisce un ID del post) è uguale al valore da me specificato.
C'è un modo per farlo?
Sono particolarmente interessato a soluzioni compatibili con il plugin WP-Paginate.

L'oggetto WP_Query
accetta un argomento per i metadati dei post. In generale, vorrai fare quanto segue:
$my_query = new WP_Query(
array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'project_cat',
'value' => 'my-value',
)
),
// Altre proprietà della query
)
);
Dove 'my-value' è il tuo 'valore specificato'.
Esempio di utilizzo:
add_action( 'pre_get_posts' , 'my_pre_get_posts' );
function my_pre_get_posts( $query ) {
// Verifica che sia la query principale e altre condizioni necessarie
if( $query->is_main_query() ) {
$query->set(
'meta_query',
array(
array(
'key' => 'project_cat',
'value' => 'my-value'
)
)
);
}
}
Vedi WP_Query, pre_get_posts. Tutte le condizioni sono disponibili per l'uso. Attualmente questo viene eseguito su ogni query principale - cosa che probabilmente non vuoi.
In alternativa puoi usare query_posts
(un metodo più semplice ma molto meno efficiente) per modificare la query solo per un'istanza specifica in un template.

@TahirYasin - vedi il codex.
