Open source (linux, ubuntu, wordpress, firefox), homebrew e altro.
 Open source (linux, ubuntu, wordpress, firefox), homebrew e altro.

Wordpress // Webmaster

Articoli di categoria in ordine alfabetico

Si può avere l’esigenza di visualizzare i post presenti in una certa categoria (o in più categorie) in ordine alfabetico, di autore o di ID, sia crescente che decrescente.
Si può influire anche sulla data, come già accade (i post vengono mostrati dall’ultimo al primo in base alla data di pubblicazione), per invertirne l’ordine.

Bisogna modificare il file category.php del proprio template, o meglio, se si vuole applicare la modifica ad una sola categoria, bisogna creare un file con il numero ID della categoria, ad esempio category-1.php se la categoria è la numero 1.

Se il vostro template non contiene un file category.php occorrerà crearlo, ad esempio dal file index.php apportando le necessarie modifiche.

Potete vedere la modifica (o hack) in questione in questa stessa categoria, Ottimizzare WordPress, dove gli articoli vengono mostrati in odine alfabetico anzichè cronologico.

Inizio Loop

Nel file category-1.php bisogna cercare il codice di inizio Loop:

< ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

oppure

< ?php if (have_posts()) : ?>
< ?php while (have_posts()) : the_post(); ?>

e sostituirlo con il seguente:

< ?php if ($posts) { ?>
< ?php
$lastposts = get_posts(‘order=ASC&orderby=post_name&category=1’);
foreach($lastposts as $post) :
setup_postdata($post);
?>

In order possiamo usare ASC o DESC per averli ordinati in ordine crescente o decrescente.

In orderby possiamo inserire post_name per ordinarli in base al nome, post_date per ordinarli in base alla data, post_modified in base alla data di modifica, ID per mostrarli in base all’identificativo, post_author in base all’autore.

Infine in category dovremo specificare l’ID della categoria (chiamando il file category.php e non specificando nessuna categoria, o meglio eliminando del tutto l’opzione category, la modifica verrà applicata a tutte le categorie del sito).

Fine Loop

A questo punto, caricando il nuovo file sul server e visualizzando la categoria “modificata” dovremo ottenere un bell’errore.

Dovremo cercare la fine del loop in category-1.php:

< ?php endwhile; ?>

e sostituirla con questo codice:

< ?php endforeach; ?>

Se la categoria continua a darci errore, cercate ed eliminate il seguente codice dal vostro file category-1.php:

< ?php endif; ?>

Nel mio caso ho risolto apportando queste modifiche.
In base al tipo di template che avete potreste avere altri errori da sistemare o cercare un’altra strada per risolvere il problema.

  • Se ti è piaciuto l'articolo Articoli di categoria in ordine alfabetico lo puoi condividere inserendo questo codice:

    <a href="https://www.pietrodigiorgio.it/334/articoli-di-categoria-in-ordine-alfabetico/">Articoli di categoria in ordine alfabetico</a>

4 Commenti

  1. Morena

    ciao, io vorrei visualizzare nelle categorie gli articoli per ordine alfabetico però questo tuo suggerimento non mi funziona. Come posso procedere? Grazie

  2. pi3tr0

    prova a modificare un tema che non ti interessa, tipo il default di wordpress o un’altro qualsiasi, il metodo in linea di massima funziona, quindi provando su un secondo o terzo tema dovresti farcela.

    poi se proprio non riesci mi dici quale tema usi e se ho un pò di tempo ci do un’occhiata

  3. costy

    Non è stata chiusa la parentesi graffa:
    viene aperta qui
    e poi non viene richiusa.
    Comunque dopo aver corretto questo inconveniente non funziona comunque.
    Inoltre in < ?php tra il minore e il punto interrogativo credo non debba essere usato lo spazio.

    Aiuto! a me non funziona :(

  4. costy

    Scusa parte del commento è stata ovviamente cancellata perchè conteneva codice php comunque il disorso mi sembra chiaro una graffa non vine chiusa E c’è uno spazio tra < e ?

Commenti chiusi

Open source (linux, ubuntu, wordpress, firefox), homebrew e altro.



pietrodigiorgio.it è un blog personale dove di tanto in tanto tratto temi che mi interessano.


Sei libero di: copiare, modificare ed esibire gli articoli in pubblico, a condizione di attribuirne la paternità sempre e comunque al sito pietrodigiorgio.it, indicando nome e URL.