- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Articoli di sottocategorie
-
Articoli di sottocategorie
Ciao a tutti. Avrei necessità di fare una cosa di questo tipo: mostrare il primo articolo di ogni sottocategorie.
Mi spiego meglio: ho creato in wordpress la categoria A e diverse sottocategorie Ab Ac Ad....Quello che vorrei fare è mostrare l'ultimo articolo di ogni sottocategoria in questo modo:
- Titolo
- Autore
- Sottocategoria dove è inserito (senza che venga mostrata anche la categoria principale)
- Riassunto
Si può fare?
Grazie. Ciao . Antonio
-
Ciao jhar79! Penso che puoi raggiungere il tuo obiettivo utilizzando la seguente funzione di Wordpress: get_posts(), passando a questa gli opportuni parametri. Ti posto il link alla pagina del Codex di WP che descrive la funzione: http://codex.wordpress.org/Template_Tags/get_posts
-
Grazie...ci provo...ma non garantisco
Ciao
-
E' ufficiale. Non riesco e sto impazzendo
Quali sono i parametri da inserire per mostrare l'ultimo articolo di ogni sottocategoria?
Vi ringrazio per l'aiuto.
Ciao.
-
Prova a scrivere questo codice, se non funziona prova a modificarlo. Non l'ho proprio testato e penso che sicuramente c'è qualche errore, in ogni caso penso tu debba fare una cosa del genere:
<?php
$sub_args = array(
'child_of' => /* Qui va l'ID della categoria A */ ,);$subcategories = get_categories( $sub_args );
for($i=0;isset($subcategories*);$i++) {
$post_args = array(
'posts_per_page' => 1,
'category_name' => $subcategories*->name,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish', );$posts_array = get_posts( $post_args );
foreach ($posts_array as $single_post) {
setup_postdata($single_post); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt();
}
}
?>
-
Ovviamente dove sta scritto /* Qui va l'ID della categoria A / devi scrivere l'ID della categoria A e devi togliere / e */
-
Grazie MarcoF., Gentilissimo
Il codice più o meno funziona, ma mi fa vedere per 5 volte lo stesso articolo della categoria selezionata.
Io sto provando a giocare con il codice, ma se trovi l'inghippo attendo
Grazie veramente molto
-
Prova a riscrivere il foreach in questo modo:
foreach ($posts_array as $single_post) {
setup_postdata($single_post); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt();
wp_reset_postdata(); /* Aggiunta */
}
-
Ma ora ti fa vedere il primo articolo di una sola sottocategoria per 5 volte giusto?
-
Si, anche con reset_postdata mi fa vedere il primo articolo di una sottocategoria per 5 volte.
-
Ok allora ti dico che se tu scrivessi in questo modo, ti farebbe visualizzare i titoli giusti di ogni articolo:
foreach ($posts_array as $single_post) {
setup_postdata($single_post); ?>
<h2><a href="<?php echo get_permalink($single_post->ID); ?>"><?php echo get_the_title($single_post->ID); ?></a></h2>
<?php the_excerpt();
wp_reset_postdata();
}Il fatto è che non riesco a trovare un modo per recuperare il contenuto di un post tramite ID. Vedi se tu ci riesci.
-
Anzi prova così:
foreach ($posts_array as $single_post) {
setup_postdata($single_post); ?>
<h2><a href="<?php echo get_permalink($single_post->ID); ?>"><?php echo get_the_title($single_post->ID); ?></a></h2>
<?php echo get_post($single_post->ID)->post_excerpt;
wp_reset_postdata();
}
-
Ciao. Scusami per il ritardo ma per un paio di giorni non sono riuscito a lavorarci.
Perfetto, funziona. Veramente molte grazie.
Questo il nuovo codice, per le persone a cui potrebbe servire. Ciao
<?php
$sub_args = array(
'child_of' => /* ID Categoria */ ,);$subcategories = get_categories( $sub_args );
for($i=0;isset($subcategories*);$i++) {
$post_args = array(
'posts_per_page' => 1,
'category_name' => $subcategories*->name,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish', );$posts_array = get_posts( $post_args ); foreach ($posts_array as $single_post) { setup_postdata($single_post); ?>
<h2><a href="<?php echo get_permalink($single_post->ID); ?>"><?php echo get_the_title($single_post->ID); ?></a></h2>
<?php the_excerpt(); wp_reset_postdata(); } }?>
-
Ottimo !!!