WP_Query per Nome Categoria
Ciao, sto utilizzando del codice per visualizzare i post in uno slider su una pagina e nella parte superiore ho del codice per filtrarli usando WP_Query. Ecco il codice, non sono sicuro di cosa non funzioni:
<?php
/**
* Contenuti in Evidenza 2
*
*/
$args = array(
'post_type' => 'iv_post_type',
'category' => 'commitment',
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) : ?>
<div id="video-sidebar-right">
<div class="featured-current-wrapper">
<div id="featured-content">
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="featured-post">
<?php if(has_post_thumbnail()) :?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'bcc-video-medium' ); ?></a>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
<?php else :?>
<?php endif;?>
</div> <!-- .featured-post -->
<div class="featured-post-pager">
<span id="slider-prev" class="slider-nav">← Foto Successiva</span>
<span id="slider-next" class="slider-nav">→ Foto Precedente</span>
</div>
<?php endwhile; ?>
</div><!-- #featured-content -->
</div><!-- .featured-current-wrapper -->
</div><!-- #video-sidebar-right -->
<div id="video-featured-content">
<div class="featured-video">
<div class="videoWrapper">
<iframe width="640" height="360" src="//www.youtube.com/embed/so_PO0dP3oA" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<?php wp_nav_menu( array( 'theme_location' => 'bcc-video-menu' ) ); ?>
<p class="video-choose-cat">Scegli una categoria dall'elenco sopra per visualizzare i nostri diversi articoli.</p>
<div id="slider-nav">
<div id="slide-thumbs">
<?php $slidecount = 1;
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="slide-thumbs-single <?php echo ( $slidecount == -1 ) ? 'last' : ''; ?>">
<?php if(has_post_thumbnail()) :?>
<?php the_post_thumbnail( 'bcc-video-thumb' ); ?>
<?php else :?>
<?php endif;?>
</div>
<?php $slidecount++; ?>
<?php endwhile; ?>
</div><!-- .slide-thumbs -->
</div><!-- #slider-nav -->
</div><!-- #video-featured-content -->
<?php endif; ?>

category
è un parametro valido per get_posts
, ma non per WP_Query
. Ecco i parametri validi per le categorie in WP_Query
:
- cat (int) - utilizza l'ID della categoria.
- category_name (string) - utilizza lo slug della categoria (NON il nome).
- category__and (array) - utilizza l'ID della categoria.
- category__in (array) - utilizza l'ID della categoria.
- category__not_in (array) - utilizza l'ID della categoria.
Puoi utilizzare sia cat
che category_name
.
Se non sei sicuro di un parametro, puoi fare un var_dump()
della tua variabile new WP_Query
. Nel tuo caso, fai così:
?><pre><?php var_dump($loop); ?></pre><?php
Questo mostrerà qualcosa del genere:
object(WP_Query)#197 (49) {
["query"]=>
array(2) {
["page"]=>
string(0) ""
["pagename"]=>
string(7) "profile"
}
["query_vars"]=>
array(62) {
["page"]=>
int(0)
["pagename"]=>
string(7) "profile"
["error"]=>
string(0) ""
["m"]=>
string(0) ""
["p"]=>
int(0)
["post_parent"]=>
string(0) ""
["subpost"]=>
string(0) ""
["subpost_id"]=>
string(0) ""
["attachment"]=>
string(0) ""
["attachment_id"]=>
int(0)
["name"]=>
string(7) "profile"
["static"]=>
string(0) ""
["page_id"]=>
int(0)
["second"]=>
string(0) ""
["minute"]=>
string(0) ""
["hour"]=>
string(0) ""
["day"]=>
int(0)
["monthnum"]=>
int(0)
["year"]=>
int(0)
["w"]=>
int(0)
["category_name"]=>
string(0) ""
["tag"]=>
string(0) ""
["cat"]=>
string(0) ""
["tag_id"]=>
string(0) ""
["author"]=>
string(0) ""
["author_name"]=>
string(0) ""
["feed"]=>
string(0) ""
["tb"]=>
string(0) ""
["paged"]=>
int(0)
["comments_popup"]=>
string(0) ""
["meta_key"]=>
string(0) ""
["meta_value"]=>
string(0) ""
["preview"]=>
string(0) ""
["s"]=>
string(0) ""
["sentence"]=>
string(0) ""
["fields"]=>
string(0) ""
["menu_order"]=>
string(0) ""
["category__in"]=>
array(0) {
}
["category__not_in"]=>
array(0) {
}
["category__and"]=>
array(0) {
}
["post__in"]=>
array(0) {
}
["post__not_in"]=>
array(0) {
}
["tag__in"]=>
array(0) {
}
["tag__not_in"]=>
array(0) {
}
["tag__and"]=>
array(0) {
}
["tag_slug__in"]=>
array(0) {
}
["tag_slug__and"]=>
array(0) {
}
["post_parent__in"]=>
array(0) {
}
["post_parent__not_in"]=>
array(0) {
}
["author__in"]=>
array(0) {
}
["author__not_in"]=>
array(0) {
}
["ignore_sticky_posts"]=>
bool(false)
["suppress_filters"]=>
bool(false)
["cache_results"]=>
bool(true)
["update_post_term_cache"]=>
bool(true)
["update_post_meta_cache"]=>
bool(true)
["post_type"]=>
string(0) ""
["posts_per_page"]=>
int(6)
["nopaging"]=>
bool(false)
["comments_per_page"]=>
string(2) "20"
["no_found_rows"]=>
bool(false)
["order"]=>
string(4) "DESC"
}
["tax_query"]=>
NULL
["meta_query"]=>
object(WP_Meta_Query)#211 (2) {
["queries"]=>
array(0) {
}
["relation"]=>
NULL
}
["date_query"]=>
bool(false)
["queried_object"]=>
object(WP_Post)#236 (24) {
["ID"]=>
int(265)
["post_author"]=>
string(1) "1"
["post_date"]=>
string(19) "2014-04-21 14:48:59"
["post_date_gmt"]=>
string(19) "2014-04-21 12:48:59"
["post_content"]=>
string(0) ""
["post_title"]=>
string(4) "Test"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(4) "open"
["post_password"]=>
string(0) ""
["post_name"]=>
string(7) "profile"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-09-10 19:54:58"
["post_modified_gmt"]=>
string(19) "2014-09-10 17:54:58"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(39) "http://localhost/wordpress/?page_id=265"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "page"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
}
["queried_object_id"]=>
int(265)
["request"]=>
string(138) "SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND (wp_posts.ID = '265') AND wp_posts.post_type = 'page' ORDER BY wp_posts.post_date DESC "
["posts"]=>
&array(1) {
[0]=>
object(WP_Post)#212 (24) {
["ID"]=>
int(265)
["post_author"]=>
string(1) "1"
["post_date"]=>
string(19) "2014-04-21 14:48:59"
["post_date_gmt"]=>
string(19) "2014-04-21 12:48:59"
["post_content"]=>
string(0) ""
["post_title"]=>
string(4) "Test"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(4) "open"
["post_password"]=>
string(0) ""
["post_name"]=>
string(7) "profile"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-09-10 19:54:58"
["post_modified_gmt"]=>
string(19) "2014-09-10 17:54:58"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(39) "http://localhost/wordpress/?page_id=265"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "page"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
}
}
["post_count"]=>
int(1)
["current_post"]=>
int(-1)
["in_the_loop"]=>
bool(false)
["post"]=>
object(WP_Post)#212 (24) {
["ID"]=>
int(265)
["post_author"]=>
string(1) "1"
["post_date"]=>
string(19) "2014-04-21 14:48:59"
["post_date_gmt"]=>
string(19) "2014-04-21 12:48:59"
["post_content"]=>
string(0) ""
["post_title"]=>
string(4) "Test"
["post_excerpt"]=>
string(0) ""
["post_status"]=>
string(7) "publish"
["comment_status"]=>
string(4) "open"
["ping_status"]=>
string(4) "open"
["post_password"]=>
string(0) ""
["post_name"]=>
string(7) "profile"
["to_ping"]=>
string(0) ""
["pinged"]=>
string(0) ""
["post_modified"]=>
string(19) "2014-09-10 19:54:58"
["post_modified_gmt"]=>
string(19) "2014-09-10 17:54:58"
["post_content_filtered"]=>
string(0) ""
["post_parent"]=>
int(0)
["guid"]=>
string(39) "http://localhost/wordpress/?page_id=265"
["menu_order"]=>
int(0)
["post_type"]=>
string(4) "page"
["post_mime_type"]=>
string(0) ""
["comment_count"]=>
string(1) "0"
["filter"]=>
string(3) "raw"
}
["comment_count"]=>
int(0)
["current_comment"]=>
int(-1)
["found_posts"]=>
int(1)
["max_num_pages"]=>
int(0)
["max_num_comment_pages"]=>
int(0)
["is_single"]=>
bool(false)
["is_preview"]=>
bool(false)
["is_page"]=>
bool(true)
["is_archive"]=>
bool(false)
["is_date"]=>
bool(false)
["is_year"]=>
bool(false)
["is_month"]=>
bool(false)
["is_day"]=>
bool(false)
["is_time"]=>
bool(false)
["is_author"]=>
bool(false)
["is_category"]=>
bool(false)
["is_tag"]=>
bool(false)
["is_tax"]=>
bool(false)
["is_search"]=>
bool(false)
["is_feed"]=>
bool(false)
["is_comment_feed"]=>
bool(false)
["is_trackback"]=>
bool(false)
["is_home"]=>
bool(false)
["is_404"]=>
bool(false)
["is_comments_popup"]=>
bool(false)
["is_paged"]=>
bool(false)
["is_admin"]=>
bool(false)
["is_attachment"]=>
bool(false)
["is_singular"]=>
bool(true)
["is_robots"]=>
bool(false)
["is_posts_page"]=>
bool(false)
["is_post_type_archive"]=>
bool(false)
["query_vars_hash":"WP_Query":private]=>
string(32) "7d1c96f43296ed3cb0cd8c4716b9b916"
["query_vars_changed":"WP_Query":private]=>
bool(false)
["thumbnails_cached"]=>
bool(false)
["stopwords":"WP_Query":private]=>
NULL
}
MODIFICA
Un'altra cosa da verificare è se stai utilizzando tassonomie personalizzate o categorie predefinite. È importante sapere la differenza perché le tassonomie personalizzate non utilizzano i parametri delle categorie, ma tax_query
. Se non sei sicuro, leggi la mia risposta su questo argomento qui.
Se stai utilizzando una tassonomia personalizzata, dovresti rimuovere il parametro category
e sostituirlo con tax_query
.
Esempio:
'tax_query' => array(
array(
'taxonomy' => 'NOME DELLA TUA TASSONOMIA',
'field' => 'slug',
'terms' => 'SLUG DEL TUO TERMINE',
),
),

prova questo
$anArray = array(
'tax_query' => array(
array(
'taxonomy' => 'LA TUA TASSONOMIA PERSONALIZZATA', // Sostituisci con il nome della tua tassonomia personalizzata
'terms' => 'ID DELLA CATEGORIA', // Inserisci l'ID della categoria
),
),
);
puoi trovare i valori nella tabella wp_term_taxonomy
del tuo database.
