He creado un tipo de publicación personalizada y le he adjuntado algunos campos personalizados. Ahora me gustaría que la búsqueda que los autores pueden realizar en la pantalla de la lista de publicaciones personalizada (en el backend de administración) también se realice en los metacampos y no solo se vea en el título y el contenido como de costumbre.
¿Dónde puedo conectarme y qué código tengo que usar?
Imagen de ejemplo
Stefano
custom-post-types
custom-field
search
Stefano
fuente
fuente
Respuestas:
Resolví filtrar la consulta agregando la unión en la tabla postmeta y cambiando la cláusula where. Aquí encontrará consejos sobre cómo filtrar la cláusula WHERE (a menudo requieren búsqueda y reemplazo de expresiones regulares) en el códice :
fuente
La respuesta de Stefano es excelente, pero carece de una cláusula distinta:
Agregue el código anterior, actualícelo y funcionará sin duplicados.
fuente
Esto funcionará
fuente
if ( $query->query['post_type'] != 'your_custom_post_type' ){ return; }
parte superior de la función evitará que esto se ejecute en otras búsquedas. Tenga en cuenta que la técnica en esta respuesta ya no busca el post_title y agregar eso nuevamente no es trivial.get_search_query()
que llaman másget_query_var( 's' )
. Como "s" está configurado como una cadena vacía, los resultados de búsqueda para "" siempre tendrán un valor vacío entre las comillas. ¿Hay alguna modificación en esta solución que evite esto?Respuesta 1: Agregue este código en el archivo de función, y cambie y agregue más nombres de columnas, que ha utilizado en su tipo de publicación personalizada
Respuesta 2: Recomendado Use este código en el archivo de función sin ningún cambio
fuente
No es una búsqueda, pero algunos "seleccionan" por un valor distinto.
En el archivo funciones-iworks-posts-filter.zip Tienes un ejemplo de cómo agregar filtro para la publicación regular por alguna meta_key. Creo que es fácil de convertir.
fuente
La versión del código aquí en un par de respuestas que modifica el parámetro meta_query de la búsqueda WP_Query en pre_get_posts ya no estaba buscando el post_title. Agregar la capacidad de buscar el título de la publicación, O los meta valores no se pueden hacer directamente en WP_Query sin modificar SQL desafortunadamente, ya que esta pregunta se desarrolla sobre: Usar metaconsulta ('meta_query') con una consulta de búsqueda ('s')
He combinado algunas de las técnicas aquí para obtener una versión funcional que evite los preg_replaces y demasiadas modificaciones de SQL (desearía que se pudiera evitar por completo). El único inconveniente es que después de una búsqueda, el texto de los subtítulos en la parte superior de la página dice "Resultados de búsqueda para ''". Acabo de ocultar eso con CSS para el tipo de publicación personalizada de mi complemento.
fuente