La cosa è, nella homepage del mio tema, vogliomostra post di diversa categoria in Divisione Differente Ogni DIV conterrà 3 post da una categoria. Ho bisogno di un ciclo che possa scegliere gli ultimi 3 post di una categoria specifica. Non riesci a trovare nessuno adatto per questo.
Per spiegare le cose più facilmente, ecco una foto dimostrativa della sezione Contenuto,
http://i.imgur.com/5QSzAIS.png
Sarà di grande aiuto, se qualcuno mi aiuti con il codice!
risposte:
2 per risposta № 1<?php query_posts("cat=10&posts_per_page=3"); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
Questo dovrebbe farti cominciare. È necessario utilizzare questo codice due volte. Dove dice cat=10
, dovresti inserire il tuo ID di categoria (puoi controllare questo quando fai clic su una categoria dal pannello di amministrazione, il browser mostrerà qualcosa come questo http://yourwebsite.com/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=4&post_type=post)
Dove dice tag_ID
è l'ID della tua categoria.
0 per risposta № 2
Attualmente sto usando un metodo diverso su una paginadel sito che sto costruendo e che mi permette di eseguire più loop in una pagina e specificare la categoria per ognuno.Questo metodo personalmente mi piace di più in quanto è più semplice per me, e posso definire la categoria con lo slug invece di l'ID.
Invece di usare have_posts()
e così, tu usi WP_Query()
dopo aver definito il tuo array e poi wp_reset_postdata()
per terminare il ciclo. Il vantaggio è che puoi continuare a correre in questo modo.
Sto anche caricando i dati dai campi personalizzati nei miei messaggi usando get_post_meta
, ma questo metodo funzionerà senza quella roba.
<div class="audioGrid">
<?php
$args = array( "post_type" => "post",
"category_name" => "audio",
"posts_per_page" => 3,
"order" => "DESC" );
$query1 = new WP_Query($args);
while ( $query1->have_posts() ) {
$query1->the_post();
?>
<div id="<?php echo( basename(get_permalink()) ); ?>" class="grid_item">
<?php the_post_thumbnail( "audio-thumb" ); ?>
<h3><?php the_title(); ?></h3>
<p><?php echo get_post_meta($post->ID, "post_description", true); ?></p>
<a target="blank" href="<?php echo get_post_meta($post->ID, "audio_link", true); ?>"></a>
</div>
<?php the_content(); ?>
<?php } ?>
</div> <?php // end Audio Grid ?>
<?php wp_reset_postdata(); ?>
<div class="videoGrid">
<?php
$args2 = array( "post_type" => "post",
"category_name" => "video",
"posts_per_page" => 3,
"order" => "DESC" );
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ) {
$query2->the_post();
?>
<div id="<?php echo( basename(get_permalink()) ); ?>" class="grid_item">
<?php the_post_thumbnail( "video-thumb" ); ?>
<h3><?php the_title(); ?></h3>
<p><?php echo get_post_meta($post->ID, "post_description", true); ?></p>
<a target="blank" href="<?php echo get_post_meta($post->ID, "video_link", true); ?>"></a>
</div>
<?php the_content(); ?>
<?php } ?>
</div> <?php // end Video Grid ?>
<?php wp_reset_postdata(); ?>
Un'altra cosa interessante che sto facendo è usare un campo personalizzato per definire l'ordine delle cose e l'utilizzo meta_key
e meta_value_num
per ottenere quel numero e forzare l'ordine come voglio, e dal momento che questo sito non è complicato, definire l'ordine in questo modo è conveniente. Io uso solo gli zeri iniziali per semplificare: 001, 002, 003, ecc.
<?php
$args2 = array( "post_type" => "post",
"category_name" => "video",
"posts_per_page" => 3,
"meta_key" => "video_order",
"orderby" => "meta_value_num",
"order" => "ASC" );
$query2 = new WP_Query($args2);
while ( $query2->have_posts() ) {
$query2->the_post();
?>
In ogni caso, spero che questo aiuti se hai bisogno di utilizzare più loop per estrarre messaggi da diverse categorie.