Twitter Profile
salta alla navigazione

WordPress: pubblicare i post di una specifica categoria in una pagina dedicata 4 maggio 2009

Inviato da LukePet in : Chicche, Guide, Informatica, Prodotti, Software, Soluzioni, Sviluppo, Tutorial, Web , trackback

Proprio ieri mi sono cimentato in una piccola personalizzazione per un blog WordPress che sto gestendo; niente di particolare, avevo giusto un’esigenza di impostazione e sono riuscito a soddisfarla.

Vi spiego meglio.

In pratica dovevo creare una sezione dedicata in cui visualizzare tutti i post che rientravano in una specifica categoria. Niente di insormontabile insomma, mi è bastata qualche piccola ricerca per individuare la soluzione; ma visto che gran parte delle info che ho trovato sono in inglese, riporto qui la descrizione dei passi in italiano; così, semmai qualcuno ne avesse bisogno, ha tutto scritto per bene.

Dunque, prima di tutto vi segnalo il link che mi ha fatto da guida, eccolo qua: http://codex.wordpress.org/Template_Tags/query_posts.

E questi sono i passi da seguire per implementare questa piccola personalizzazione:

1. Andate sul vostro database WordPress ed individuate l’ID della categoria che vi interessa gestire in un’altra pagina. La tabella cui dovete far riferimento è wp_terms (da cui dovete individuare il term_id); se si tratta di una nuova categoria naturalmente dovete prima crearla e poi consultare la tabella.

2. Ora dovete andare nel vostro tema e creare un template per la nuova pagina che raccoglierà i post.

Ecco come fare…

Andate nel vostro tema e create una copia del file page.php con un nuovo nome (supponiamo di chiamarlo page_template01.php); dopo aver creato il file occorrerà editarlo, quindi apritelo ed inserite in testa queste istruzioni:
<?php
/*
Template Name: NOMETEMPLATE
*/
?>

Al posto di NOMETEMPLATE scegliete un nome da dare al vostro template.

Sempre sullo stesso file, subito dopo il <?php get_header(); ?>, dovrete inserire queste altre istruzioni:
<?php
$query= 'cat=IDCATEGORIA&orderby=date&order=DESC';
query_posts($query);
?>

Al posto di IDCATEGORIA dovete mettere l’id della categoria che avete precedentemente individuato (es: cat=9)

3. A questo punto salvate ed aprite il pannello di amministazione di WordPress, andate su Pagine -> Aggiungi nuova e tra gli attributi scegliete il template che avete appena creato. Ora non vi resta che pubblicare la pagina (potete anche non scrivere niente e lasciarla vuota).

Bene, se ora andate a vedere il blog e cliccate sulla pagina per visualizzarla vedrete che essa riporta tutti i post che sono contrassegnati dalla categoria che avete scelto. E già qui gran parte del lavoro è fatto.

Ora però, se voleste evitare che i post di quella categoria siano visibili nell’home page insieme a tutti gli altri articoli, c’è un altro piccolo passo da fare. Vediamolo.

4. Andate nella cartella del tema ed aprite il file index.php per editarlo. Subito dopo il <?php get_header(); ?> dovete aggiungere queste istruzioni:
<?php
if (is_home()) {
query_posts($query_string . "&cat=-IDCATEGORIA");
}
?>

IDCATEGORIA rappresenta sempre l’id della categoria che avete scelto (es: cat=-9).

Salvate e visualizzate il blog.

Tutti i post che rientrano nella categoria identificata dall’IDCATEGORIA non saranno più visibili in home page, ma saranno consultabili dalla pagina dedicata che avete precedentemente creato. Niente di più facile.

Ok, credo di essere stato abbastanza sintetico e chiaro…come sempre, spero di essere stato utile a qualcuno.

Buon sviluppo a tutti.