Home › Foros › WordPress › Programación › WP_Query + Custom Post Type + Categorías
Tagged: category, custom post type, taxonomy, wp_query
| Autor | Publicaciones |
|---|---|
| Autor | Publicaciones |
| 3 febrero 2012 a las 13:58 #59770 | |
|
aekschoko |
Buenas, a ver si alguien sabe ayudarme. El problema viene cuando además, quiero filtar por una categoría en concreto. No consigo hacerlo, porque si uso “category_name” deja de funcionar el filtro de “post_type” así que solo me deja usar uno de los dos. ¿Como podría hacer ésto? |
| 5 febrero 2012 a las 20:36 #59843 | |
|
Hombre Man |
Modifica tu plantilla archive.php, porque la visualización de taxonomías es en realidad una búsqueda, entonces tienes que indicar que en esa búsqueda se incluyan los CPT que deseas. Una solución más programática, sería agregar un filtro al archivo, para que la búsqueda del CPT no sea hard coded y puedas adaptar tu plugin a más CPT. |
| 5 febrero 2012 a las 20:54 #59846 | |
|
aekschoko |
Gracias por tu respuesta incognito, auqnue he de reconocer que no termino de entender tu solución. Te explico, la idea del plugin que quiero es para hacer un shortcode tipo [blog post_type="video" category="conferencias" pagination="false" number_post="5" orderby="rand" /] Así el resultado sería un listado de 5 post aleatorios de tipo “video” pertenecientes a la categoría “conferencias”. Realizo la consulta con WP_Query, pero no consigo usar los filtros “post_type” y “category” a la vez, solo me funcionan por separado, si solo filtro por uno de ellos. |
| 5 febrero 2012 a las 22:24 #59860 | |
|
Hombre Man |
Prueba convirtiendo el argunto post_type a un array. |
| 6 febrero 2012 a las 10:50 #59888 | |
|
aekschoko |
Nada… no funciona. $wp_query = new WP_Query(array(‘paged’ => false, ‘post_type’ => array(‘video’), ‘category_name’ => ‘conferencias’)); while ($wp_query->have_posts()) : $wp_query->the_post(); Solo funciona correctamente la consulta si mantendo uno de los dos filtros, o ‘post_type’ o ‘category_name’. |
| 6 febrero 2012 a las 10:57 #59890 | |
|
aekschoko |
Por cierto, he probado a hacer la consulta de la siguiente forma pero tampoco funciona. Una vez más solo me filtra por CPT si no filtro a su vez por category. query_posts(‘paged=false&post_type=video&category_name=conferencias’); |
| 6 febrero 2012 a las 16:57 #59898 | |
|
LGrusin |
A ver, por defecto la consulta siempre se hace al post_type post. Si consultas por categoría tienes que decirle también el post_type. Si no quieres estar poniendo nombre del post_type usa any. Es decir, Esto debería funcionar. Otra cosa más fácil y que no he probado sería lo siguiente: Esto hace que se le añada a la consulta el post_type any sea la categoría que sea. Ya digo no lo he probado… Un saludo |
Debes acceder para responder en este hilo.
Inicio
