Skip Navigation

[Resuelto] Buscador que muestre resultados de dos post types diferentes

This support ticket is created hace 1 año, 10 meses. There's a good chance that you are reading advice that it now obsolete.

Este es el foro de soporte técnico para Toolset: un paquete de plugines para el desarrollo de sitios WordPress sin escribir PHP.

Cualquier persona puede leerlo, pero solo los clientes de Toolset pueden publicar en este foro. El soporte de Toolset atiende 6 días a la semana, 19 horas por día.

Etiquetado: 

This topic contains 10 respuestas, has 2 mensajes.

Last updated by marF hace 1 año, 10 meses.

Assigned support staff: Nigel.

Autor
Mensajes
#1855251

Hola!
¿Se puede hacer un buscador que muestre resultados de dos post types diferentes? ¿Cómo debo configurarlo?
Tengo un post type que es misiones (viajes) y otro que son obras (canciones). El objetivo es hacer un buscador que pueda filtrar los resultados de búsqueda teniendo en cuenta tanto los campos de búsqueda de las misiones como de las obras.
Ah, también decir que misiones y obras las he relacionado de la siguiente forma: de una (misión) a infinitas (obras).
Muchas gracias!

#1856409

Nigel
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: Europe/London (GMT+01:00)

Screenshot 2020-11-25 at 07.41.04.png

Se puede incluir tantos tipos de entrada que se quiera, ve pantallazo.

El hecho de que están relacionadas no afecta los resultados, no se si funciona como esperas.

Imagina que tienes dos tipos de entrada, libros y canciones. Los libros tienen un campo 'autor'. Las canciones tienen un campo 'cantor'.

Puedes crear una vista de búsqueda que muestra libros y canciones y tiene filtros para autor y para cantor.

Cuando el usuario elige un autor, sólo se muestra los libros correspondientes.

Cuando el usuario elige un cantor, sólo se muestra las canciones correspondientes.

#1856541
Captura de Pantalla 2020-11-25 a les 11.43.42.png
Captura de Pantalla 2020-11-25 a les 11.44.23.png

Hola Nigel, muchas gracias por tu explicación.

ok a lo de los campos de entrada. Así lo había hecho. Pero no funciona como yo quiero, porque los resultados se muestran por separado, y yo los necesito juntos.

Te mando dos imágenes, una de la caja del buscador indicando qué campos son para misiones y cuáles para obras. La otra con cómo quiero que se vean los resultados. Los necesito relacionados, que solo muestre las obras que son de la misión que corresponde. Porque hay obras que no son de misiones y salen en los resultados, y no me interesa, solo quiero que salgan las obras que son de las misiones y al lado de la misión correspondiente.

Espero haberme explicado.

#1856577

Nigel
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: Europe/London (GMT+01:00)

¿Puedes darme un ejemplo concreto de una búsqueda que da resultados inesperados, y de que resultados habrías esperado?

P.j. si buscaba la obra "La Brilana". Dices que solo debe mostrar las obras que son de la misión que corresponde.

¿Qué misión? No he introduzcado una misión en la búsqueda.

#1856599
Captura de Pantalla 2020-11-25 a les 13.04.56.png

He creado el buscador que te digo aquí: hidden link
Verás que por defecto se ven las dos misiones que tenemos activas (la 2 y la 3) y debajo de estos un lío de resultados...

Te mando una imagen con los resultados que espero. Si hay dos obras en la misión número 3, deben salir 2 filas de resultados de la misión 3. Una fila con la obra "La Briliana" y otra fila con la obra "El mariner (2)". En el caso de la misión 2 hay muchas obras recopiladas, en la imagen te muestro hasta 5 filas.

Espero que este ejemplo te sirva para entender los resultados inesperados.

#1856877

Nigel
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: Europe/London (GMT+01:00)

Bien. Cuando dices que quieres una búsqueda que muestra dos tipos de entrada distintos no es lo que quieres decir.

Una vista que consulta la base de datos para dos tipos de entrada mostrará una mezcla de entradas de los dos tipos.

Me parece que quieres algo diferente: una vista que muestra entradas tipo misión y—para cada misión—una vista anidada que muestra canciones que pertenecen a esa entrada misión.

Llegamos a dos problemas, uno insuperable.

Primero, el editor de bloques no tiene soporte para vistas anidadas. Es posible navegar esta limitación usando el editor "legacy" de vistas para crear la segunda vista que muestra canciones que pertenecen al misión corriente en la vista superior, y entonces puedes insertar esta vista en la salida de la primera mediante un bloque shortcode ó clásico.

Segundo, de momento no hay soporte para filtrar entradas por campos de otras entradas relacionadas. Creo que lo que quieres es una vista de misiones que incluye filtros de campos de canciones ("muestrame misiones que tiene canciones con tal carectarística"). Planteamos implementar este funcionalidad, no sé cuando.

#1856973

Entiendo. Gracias Nigel por explicarte tan bien.

Como funciona el editor "legacy"? Dónde encuentro la información? Así podría probar si me arreglo de momento con las vistas anidadas.

Lástima que no hay soporte para filtrar entradas por campos de otras entradas relacionadas, porque esto solucionaría mi problema...

#1857451

Nigel
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: Europe/London (GMT+01:00)

Screenshot 2.png
Screenshot 1.png

Al crear la documentación de Blocks quitaron la documentación sobre el editor legacy para evitar confundir a los usuarios. La diferencia principal es que en lugar de bloques tienes editores de HTML y los campos y tal que ahora insertas mediante bloques insertas por shortcodes, disponible bajo un botón "Fields and Views" ó "Campos y vistas".

Primero tendrías que ir a Toolset > Configuración y habilitar ambos editores (pantallazo 1).

Entonces puedes ir a Toolset > Views y crear una vista con el editor legacy. Debe ser más ó menos intuitiva.

Si creas una vista para mostrar entradas inferiores (canciones, hijos de misiones) debe incluir un filtro de consulta (pantallazo 2, en mi sitio creo una vista de tasks, hijos de projects).

Al terminar crear la vista, puedes volver a editar la vista que muestra las entradas superiores, y en la salida donde quieres mostrar las entradas tipo canción usar un bloque shortcode para insertar su vista, en el formato:

[wpv-view name="Nombre de la vista"]
#1861383
query filters.png
add new view.png

He estado haciendo pruebas y algo estoy haciendo mal porque no funciona correctamente...

Al hacer una nueva legacy view, selecciono "full custom display mode" (adjunto imagen).

En las query filters selecciono "Filter by post relationship or repeatable fields group owner" y lo he configurado tal y como muestro en imagen adjunta.

Después, entendí que debo crear la vista que muestra las entradas superiores con un view de blocks tal y como estaba haciendo hasta ahora, y después pongo en la zona de resultados los block fields de misiones junto al shortcode que me dijiste con el nombre de mi legacy view... pero sale todo el rato "no items found"...

Qué estoy haciendo mal?

Y otra pregunta, en el shortcode podría especificar qué resultados quiero ver de la canción? Un shortcode para Nombre, otro para cantor, etc...?

#1861599

Nigel
Supporter

Languages: Inglés (English ) Español (Español )

Timezone: Europe/London (GMT+01:00)

Me parece que tienes un problema con el filtro "Select items in the Missions amb Obras relationship as related Missions of..."

Tienes una relación misión << obra. La vista superior muestra entradas tipo misión. La vista inferior muestra entradas tipo obra.

Según tu filtro corriente "Select... related Missions...", pero esta vistra muestra obras no misiones, entonces el filtro debe ser "Select... related Obras".

Sobre el tema de los campos quieres mostrar, debes usar el Loop Wizard y incluir los campos queridos. Te recomiendo agrupar los campos en una plantilla (se ofrece esta opción). El wizard genera HTML y usa shortcodes para mostrar los valores de los campos. Tambíen tendrás la opción de editar esta plantilla con el editor de bloques en lugar de editar el HTML.

#1862817

Hecho! Genial, muchas gracias!