get_posts con múltiples categorías

21 abr 2015, 17:35:46
Vistas: 53K
Votos: 5

Si hago un get_posts() con la categoría establecida en 1,2 obtendré todas las entradas en la categoría 1 O 2. Si quiero todas las entradas que tengan ambas categorías, es decir 1 Y 2, ¿cómo hago esa consulta?

0
Todas las respuestas a la pregunta 6
0
10

Como está documentado en el codex podrías usar lo siguiente:

$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) ); //el post debe estar en la categoría con ID 2 Y 6

21 abr 2015 20:42:52
1

El Codex dice:

Nota: El parámetro de categoría debe ser el ID de la categoría, no el nombre de la categoría.

Nota: El parámetro de categoría puede ser una lista de categorías separadas por comas, ya que la función get_posts() pasa el parámetro 'category' directamente a WP_Query como 'cat'.

Por lo tanto, sería lo mismo que el parámetro de categoría de WP_Query() - cat.

21 abr 2015 17:41:26
Comentarios

Vaya, di por sentado que esto daría el mismo resultado. Mi error. Gracias.

gubbfett gubbfett
21 abr 2015 18:02:12
0

Puedes utilizar la clase WP_QUERY para buscar publicaciones en categorías específicas, aquí tienes un ejemplo:

$query = new WP_Query( 'cat=2,6,17,38' );

Aquí tienes un enlace a la documentación donde explican cómo usar los resultados para construir un bucle y mostrar las publicaciones encontradas.

21 abr 2015 17:42:23
2

Existe una forma mucho más sencilla que solo implica usar la función get_posts().

<?php $args1 = array( 'posts_per_page' => 6, 'offset'=> 0, 'category' => array(2,3,25,30));
            $myposts1 = get_posts( $args1 );
            foreach ( $myposts1 as $post ) : setup_postdata( $post ); ?>
            <div class="each-post col-lg-aynk col-md-aynk col-sm-aynk col-xs-aynk">
                <a href="<?php the_permalink(); ?>">
                    <h2><?php the_title(); ?></h2>
                </a>
                <a href="<?php the_permalink(); ?>">
                    <div class="news-story-img">
                        <?php if (class_exists('MultiPostThumbnails')) : MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'secondary-image'); endif; ?>
                        <?php the_post_thumbnail( get_permalink() ); ?>
                    </div>
                </a>

            </div>

            <?php endforeach; 
            wp_reset_postdata();?>
14 mar 2016 00:12:50
Comentarios

Por favor, explica por qué esto ayuda.

kaiser kaiser
14 mar 2016 00:58:29

No puedo votar para eliminar, pero el código ni siquiera coincide con el comentario sobre get_posts().

Alexander Holsgrove Alexander Holsgrove
29 dic 2016 19:13:00
0

De hecho, puedes usar category__and directamente con get_posts():

$posts = get_posts(array( 'category__and' => array(1,2) ));
23 oct 2016 19:56:06
0

Si deseas utilizar category_name como parámetro de búsqueda, puedes usar WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") ), donde cat_1, cat_2, ... , cat_n son todas las categorías que la publicación debe tener para ser devuelta por la consulta

Documentación aquí Codex Wordpress

21 jul 2017 16:28:46