Cambiar consulta de búsqueda de un tipo de contenido personalizado en el panel de administración de WordPress.
Quiero cambiar la consulta de búsqueda de un tipo de publicación personalizado en el panel de administración de WordPress. Utilizo este método:
function change_admin_search( $query ) {
$post_type = 'custom_post_type';
if( ! is_admin() )
return;
if ( $query->query['post_type'] != $post_type )
return;
$search_term = $query->query_vars['s'];
$persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
$num = range(0, 9);
$persianNumbersOnly = str_replace( $num,$persian, $search_term);
$englishNumbersOnly = str_replace( $persian, $num, $search_term);
$query->query_vars['s'] = $englishNumbersOnly;
}
add_action( 'pre_get_posts', 'change_admin_search' );
En esta consulta, solo busca con $englishNumbersOnly
. Quiero buscar con $englishNumbersOnly
O $persianNumbersOnly
, y $query->query_vars['s']
debería tener un OR
en la consulta. En realidad, la consulta debería verse así:
post Like "%$englishNumbersOnly%" OR post Like "%$persianNumbersOnly%"
Gracias.
davy.ai
Para cambiar la consulta de búsqueda en el panel de administración de WordPress para incluir tanto
$englishNumbersOnly
como$persianNumbersOnly
, puedes modificar la funciónchange_admin_search
de esta manera:En esta función modificada, establecemos el parámetro
meta_query
en el objeto$query
como una nueva matriz que incluye dos sub-arrays:key
con el nombre de tu campo personalizado, unvalue
de$englishNumbersOnly
y un valor de comparación (compare
) deLIKE
.key
y unvalue
de$persianNumbersOnly
.Dado que el parámetro
relation
está establecido enOR
, esto producirá una consulta que busca publicaciones cuyo valor en el campo personalizado coincida con$englishNumbersOnly
o$persianNumbersOnly
.