Visualizzare Automaticamente una Lista di Articoli per Categoria in Post e Pagine

scritto da Francesco Gavello [+] il 28 gennaio 2012 | 12 Commenti in: Welcome Weekend

Come visualizzare automaticamente una lista di articoli per categoria

Questo sabato, giusto una piccola meta-domanda legata a WordPress che potrebbe tuttavia tornare utile a molti di voi. Simone chiede:

Che plugin usi per pubblicare in automatico le domande che ti arrivano nella lista qui sotto?

Beh, nessun plugin. :)

Con un manciata di righe posizionate al termine del file functions.php del proprio tema (prima di “?>”), è possibile disporre di un pratico shortcode del tipo “[ articoli categoria="ID-CATEGORIA" numero="NUMERO-DI-POST" ]” (nessun spazio prima e dopo le quadre).

Sostituite ID-CATEGORIA con il numero corrispondente alla categoria dei post che volete recuperare e NUMERO-DI-POST con il numero di questi ultimi che volete mostrare. Questo il codice da usare:


// Shortcode (inserire quadre in apertura e chiusura)
// da usare nella forma:
// articoli categoria="ID-CATEGORIA" numero="NUMERO DI POST"

function mostra_articoli($atts){
	
	extract(shortcode_atts(array(
		'categoria' => '',
		'numero' => '1000',
	), $atts));

	$output = "";	
	
	$my_query = new WP_Query('cat='.$categoria.'&posts_per_page='.$numero);
		while ($my_query->have_posts()) : $my_query->the_post();
		$do_not_duplicate = $post->ID;

		$linkurl = get_permalink($post->ID);
		$linktitle = get_the_title($post->ID);
	
		$output = $output . "<li><a href=\"" . $linkurl . "\" title=\"" . $linktitle . "\">" .$linktitle. "</a></li>";
  
		endwhile;

	return "<ul>" . $output . "</ul>";	
}

add_shortcode('articoli', 'mostra_articoli');

Semplice e di rapida implementazione.

Ricordate di effettuare un backup di functions.php prima di procedere a qualsiasi sua modifica, dato che da esso dipende buona parte della stabilità del vostro blog. Non fa male neanche avere una minima conoscenza di PHP.

Buon weekend! :)

Trovato questo articolo interessante?

Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

12 Commenti

Update 12/02/2012: Il Regolamento Commenti è cambiato! Leggi ciò che serve sapere!

  1. Gian Luca ha detto:

    Molto semplice e paratico.

    Rispondi
  2. Nino Blasco ha detto:

    Sì, il file functions.php è importantissimo, ma con dei buoni “shortcode” come quello che hai proposto, il blog migliora di molto.
    Ottimo articolo.

    Rispondi
  3. Fulvio ha detto:

    ottimo articolo, grazie!

    Rispondi
  4. Giulio ha detto:

    Ottimo, semplice e utile.

    Rispondi
  5. n4rwal ha detto:

    Ciao prima di tutto grazie funziona bennisimo….
    volevo solo chiederti da chi i post sono dal più recente al meno sai come li posso mettere in ordine alfabetico?

    Rispondi
  6. stefano ha detto:

    Grazie, molto utile e semplice da applicare!
    Si potrebbe inserire anche il thumbnail dell’immagine?

    Rispondi
  7. Andrea ha detto:

    Ciao…

    Stavo cercando anche io il modo per mettere il tutto in ordine alfabetico!!!!
    Addirittura sono alla ricerca della seguente modifica:
    se l’output è “La magnifica citta di Verona” e io avessi bisogno solo della parola Verona?
    Cioè l’output dovrebbe darmi solo l’ultima parola…

    lascio un appunto per altre persone che si sono appena avvicinate a wordpress e potrebbero avere il mio problema:
    il file da modificare è qui:
    /wp-content/themes/NOMETEMA/includes

    io ho modificato il functions in
    /wp-content/themes/NOMETEMA/
    ma qui ti ritrovi solo il blog bianco ;)

    Rispondi
  8. Nina ha detto:

    Spiegazione ottima e chiara, grazie!
    Nina

    Rispondi
  9. Maurizio Pro ha detto:

    Non capisco come mai a tutti funziona e a me no…..
    ho copiato il codice in functions.php e nella pagina relativa ho inserito:
    [categoria="16" numero="10"]
    e nella pagina mi viene visualizzato: [categoria="16" numero="10"] e nient’ altro.
    Fermo restando il voler capire perché non funziona, è possibile utilizzare anziché l’ ID il nome della categoria o la sua abbreviazione?

    Rispondi
  10. Raffaele ha detto:

    purtroppo non trovo il file functions.php nella cartella del template, ma funziona anche per joomla ?!

    Rispondi
  11. Raffaele ha detto:

    Ciao Francesco,
    ti ringrazio per l’utilità e la semplicità del codice.
    Ma se invece di utilizzare la categoria volessi visualizzare numero x post scelti da me richiamandoli per id? Ho provato a modificare il parametro cat con p=’id1, id2….’ ma mi visualizza solo il primo id inserito, dove sbaglio?
    Grazie
    Raffaele

    Rispondi

Lascia un commento

Anteprima commentatore

Personalizza il tuo avatar!
Vai su gravatar.com e carica quello che preferisci!

I commenti sono modificabili entro 5 minuti dal loro inserimento.
Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Solo i commenti firmati con un nome saranno accettati. Leggi il Regolamento Commenti!