add_action( 'pre_get_posts', 'mov_vec_archive_page' );
function mov_vec_archive_page( $query ) {
// Evita añadir meta argumentos en las páginas de adminsitración de WordPress
if (is_admin()) {
return;
}
// Solo lo aplico a un CPT determinado y a una taxonomía personalizada
if( $query->is_main_query() && is_post_type_archive( 'nombre_de_mi_cpt' ) || $query->is_main_query() && is_tax('nombre_de_mi_custom_taxonomy') ) {
//Obtenemos la meta query original
$meta_query = (array)$query->get('meta_query');
// Aplico la modificación de la query
$query->set( 'posts_per_page', '8' );
$meta_query = array(
'agrupar_listado_por_campo_personalizado' => array(
'key' => 'nombre_campo_personalziado_para_agrupar_posts',
),
'destacado_del_listado' => array(
'key' => 'nombre_campo_personalizado_true_false_acf',
),
);
// Set the meta query to the complete, altered query
$query->set( 'meta_query', $meta_query );
$query->set( 'orderby', array( 'agrupar_listado_por_campo_personalizado' => 'ASC', 'destacado_del_listado' => 'DESC', 'title' => 'ASC' ) );
}
}