Escludere un custom post type dalla ricerca in base al valore di un custom field?
13 feb 2013, 21:18:22
Visualizzazioni: 2.03K
Voti: 0
Non sono riuscito a trovare nulla su come fare questo, o se sia addirittura possibile.
Quello che voglio fare è non mostrare nei risultati di ricerca i post del tipo personalizzato "resources" in cui "resource_usertype" (chiave) non è "Public" o "Students" o "Alumni" (valori).
O forse un modo migliore per dirlo è mostrare solo i risultati di ricerca in cui i valori di "resource_usertype" sono "Public", "Students" o "Alumni".

Ray Gulick
526
Tutte le risposte alla domanda
2
1
Devi implementare un hook per il filtro pre_get_posts
, in cui puoi impostare ciò di cui hai bisogno. Fai attenzione che dovresti modificare solo la query di ricerca, quindi devi verificare se il metodo is_search()
restituisce true. L'hook dovrebbe essere così:
add_filter( 'pre_get_posts', 'wpse8170_pre_get_posts' );
function wpse8170_pre_get_posts( WP_Query $query ) {
if ( $query->is_search() ) {
$query->set( 'post_type', array( 'resources' ) );
$query->set( 'meta_query', array(
array(
'key' => 'resource_usertype',
'value' => array('Public', 'Students', 'Alumni'),
'compare' => 'IN',
)
) );
}
return $query;
}

Eugene Manuilov
11.4K
13 feb 2013 22:02:13
1
È perfettamente possibile!
$args = array(
'post_type' => 'resources',
'meta_query' => array(
array(
'key' => 'resource_usertype',
'value' => array('Pubblico', 'Studenti', 'Alumni'), // Traduzione dei valori dell'array
'compare' => 'IN',
)
)
);
$query = new WP_Query($args);

vancoder
7.91K
13 feb 2013 21:57:20
Domande correlate