get_posts con categorie multiple

21 apr 2015, 17:35:46
Visualizzazioni: 53K
Voti: 5

Se eseguo get_posts() con la categoria impostata su 1,2 otterrò tutti i post nella categoria 1 O 2. Se voglio tutti i post che hanno entrambe le categorie, cioè 1 E 2, come devo fare questa richiesta?

0
Tutte le risposte alla domanda 6
0
10

Come documentato nel codex puoi utilizzare il seguente codice

$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) ); //il post deve appartenere sia alla categoria con ID 2 che a quella con ID 6

21 apr 2015 20:42:52
1

Il Codex dice:

Nota: Il parametro category deve essere l'ID della categoria, non il nome della categoria.

Nota: Il parametro category può essere un elenco di categorie separate da virgola, poiché la funzione get_posts() passa direttamente il parametro 'category' a WP_Query come 'cat'.

Quindi sarebbe lo stesso del parametro Category - cat di WP_Query().

21 apr 2015 17:41:26
Commenti

Wow, ho dato per scontato che questo avrebbe dato lo stesso risultato. Colpa mia. Grazie.

gubbfett gubbfett
21 apr 2015 18:02:12
0

Puoi utilizzare la classe WP_QUERY per cercare i post in categorie specifiche, ecco un esempio:

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

Qui c'è un link alla documentazione che spiega come utilizzare i risultati per costruire un loop e visualizzare i post nei risultati.

21 apr 2015 17:42:23
2

C'è un modo molto più semplice che coinvolge solo la funzione 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
Commenti

Per favore spiega perché questo aiuta.

kaiser kaiser
14 mar 2016 00:58:29

Non posso votare per eliminare, ma il codice non corrisponde nemmeno al commento riguardante get_posts().

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

In effetti puoi utilizzare category__and direttamente con get_posts():

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

Se vuoi utilizzare category_name come parametro di ricerca, puoi usare WP_Query( array("category_name" => "cat_1+cat_2+...+cat_n") ), dove cat_1, cat_2, ... , cat_n sono tutte le categorie che il post deve avere per essere restituito dalla query

Documentazione qui Codex Wordpress

21 lug 2017 16:28:46