salta alla navigazione

[Chicche] 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("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.

CONDIVIDI QUESTO POST »
  • Google Bookmarks
  • del.icio.us
  • StumbleUpon
  • Digg
  • Mixx
  • Yahoo! Buzz
  • Technorati
  • Facebook
  • MySpace
  • Twitter
  • FriendFeed
  • Wikio IT

POST CORRELATI:

  1. [Chicche] Wordpress, Apache e i permalink Comunicazione di servizio… Se vi...
  2. [Chicche] Wordpress: personalizzare le icone del plugin Sociable E’ già da un pò...
  3. [Chicche] Video gallery sul vostro blog WordPress! Avete un canale YouTube in...
  4. [Chiacchiere] Wordpress…qualcosa è cambiato Qualche tempo fa ho scritto...
  5. [Chicche] Wordpress: plugin su plugin…ecco alcuni links da spulciare In questo periodo ho smanettato...
  6. [Chicche] Stili per il vostro tema K2 su Wordpress In questo periodo sto configurando...

Commenti»

1. Rob Alferi - 5 maggio 2009

Carina questa cosa, non è una feature che mi serve però non si sa mai… quasi quasi faccio un pingback per tenerne traccia!

2. fabio - 5 maggio 2009

Ciao a tutti, sto cercando di creare una rete tra un pc linux e altri 2 windows, ho letto le guide proposte sul blog precedente ma ho un problema… Digitato il comando etc/init.d/smb start mi dice dalla shell file not found. Come devo fare?

3. LukePet - 5 maggio 2009

Ciao Fabio, ti ho risposto nel post relativo. Clicca qui: http://pollosky.it/2007/04/30/ubuntu-rete-windows-linux-con-samba/#comment-5020

4. Pierpaolo - 18 maggio 2009

mi seriva una cosa del genere nel mio blog, i miei complimenti la guida è semplice e accurata. A me funziona tutto alla perfezione.

5. LukePet - 18 maggio 2009

Grazie, mi fa piacere che ti sia stata utile.

6. Ale - 7 giugno 2009

Ottimo tutorial davvero!
Ma se uno volesse visualizzare in quella pagina solo titolo e autore, senza tutto l’articolo?

7. Carlo - 10 giugno 2009

Interessante. Mi serve :-)
… ma ho bisogno anche di un secondo passaggio.
Praticamente devo avere due listing con categorie differenti che cambiando sia per contenuto che per aspetto grafico… però tutte le pagine puntano ad un solo dettaglio del post.
Come posso fare che il listing della categoria A si apra nel post (pagina) A e che il listing della categoria B si apra nella pagina post B in modo che listing e dettaglio per le due soluzioni siano coerenti?
GRAZIE IN ANTICIPO!

8. slovo - 31 luglio 2009

ciao e grazie per questo utilissimo tutorial. Ho modificato il mio blog seguendo la procedura che hai indicato tu, ripetendola per tre categorie e altrettante pagine. tutto funziona ma se vado su una pagina (che visualizza una data categoria) non funzionano i commenti… hai qualche idea? il problema potrebbe risiedere nel codice del template che sto usando?
grazie !

9. LukePet - 31 luglio 2009

Ma che commenti intendi? quelli su ogni singolo post?

10. slovo - 31 luglio 2009

si, proprio quelli.
i post su pagina dedicata visualizzano il link al modulo commenti, ma cliccandoci sopra non succede nulla.
(i commenti ai post sono tutti abilitati)

11. LukePet - 4 agosto 2009

Mmm sinceramente così su due piedi non saprei dirti…prova a confrontare il template della pagina con quello originale; anche se mi sembra strano perchè teoricamente cliccando sul post dovresti avere sempre lo stesso tipo di visualizzazione (indifferentemente dal fatto che sia richiamato dalla home o dalla nuova pagina).

12. slovo - 5 agosto 2009

ok, proverò a controllare… ti faccio sapere, grazie. ciao!

13. nando - 18 agosto 2009

grazie mille per la chiarezza . molto utile
 

14. Anonimo - 26 agosto 2009

…era proprio quello che stavo cercando! ottima guida, veramente chiarissima!

15. mattia - 26 agosto 2009

Grandeeeee!! questo si che è utile….

16. Emilio - 2 settembre 2009

Ciao, posso chiederti aiuto? come mai a me esce un solo articolo? ho provato a controllare il codice ma e’ identico al tuo..Aiuto!!;)

17. LukePet - 7 settembre 2009

Strano, per come è impostato il codice dovrebbe selezionare tutti i post che rientrano nell’id della categoria. Prova a controllare il valore dell’id dei post direttamente sul database.

18. Claudio - 17 settembre 2009

Mi servirebbe moltissimo questo suggerimento però nel tema che utilizzo (atahulpa342) non c’è la pagina page.php
c’è la pagina index.php
che contiene questo codice
<?php     /* get all options: */
include (TEMPLATEPATH . ‘/functions/bfa_get_options.php’);
get_header(); ?>

<?php /* If there are any posts: */
if (have_posts()) : $bfa_ata['postcount'] == 0; /* Postcount needed for option “XX first posts full posts, rest excerpts” */ ?>

Siccome sono un profano mi sapete suggerire come potrei modificare per ottenere la stessa cosa
Grazie

19. LukePet - 24 settembre 2009

In effetti la struttura di questo tema è un pò più articolata…se c’è un forum di riferimento dovresti chiedere come è possibile creare i template delle pagine.

20. martino - 28 ottobre 2009

il tema che hai spiegato chiaramente, è esattamente quello che cerco di fare da tre giorni;
ho però ancora una domanda: dove trovo il database???
per favore, se mi rispondi, fai conto di avere di fronte un bimbo di cinque anni, ….sono un e-analfabeta :)
grazie per l’attenzione
martino

21. LukePet - 28 ottobre 2009

Se il tuo blog è creato utilizzando lo spazio online di wordpress.com allora non hai modo di accedere al db. Per avere maggiore possibilità di personalizzazioni occorre installare wordpress su un proprio spazio…in questo modo si ha accesso sia ai sorgenti della piattaforma sia al database.

22. martino - 29 ottobre 2009

…bene!!!
non c’entra alcunché l’opzione “Modifica CSS” ?!???

23. LukePet - 29 ottobre 2009

No…i CSS riguardano solo gli stili.

24. mario - 11 novembre 2009

Funziona, ma il codice dell’index non impedisce la pubblicazione nella home…

25. PescePalla - 9 dicembre 2009

Grazie mille, funziona benissimo ;)

26. Stefano - 15 dicembre 2009

Mi dà un errore:
Parse error: syntax error, unexpected T_STRING [...] on line 2
Il codice iniziale della pagina è:
<?php

/* Template Name: Pagine_Personali */
/* Mystique/digitalnature */

get_header();

?>

<?php
$query= ‘cat=37&orderby=date&order=DESC’;
query_posts($query);
?>
 
Come posso risolvere?

27. Stefano - 15 dicembre 2009

Risolto…
L’editor non mi inseriva una riga vuota dopo il primo <?php ma scriveva <?php/* Template Name: Pagine_Personali */ tutto sulla stessa riga…

28. Umbe - 23 dicembre 2009

Ho trovato il tuo articolo davvero interessante.
Avrei però due domande
1. Come faccio ad inserire i link di navigazione in fondo alla lista degli articoli in modo da navigare avanti e indietro negli articoli della medesima categoria?
2. Nelle opzioni di lettura ho settato a 2 il numero di articoli recenti visualizzabili. C’è la possibilità di avere più articoli nella altre pagine?
Spero di essere stato abbastanza chiaro :)
Ciao e grazie

29. Ettore - 13 gennaio 2010

Finalmente!
Ho trovato le istruzioni che cercavo e devo dire che sono anche chiare. Purtroppo devo ammettere che sono anche alle prime armi.
Il mio problema principale sta proprio nell’accedere al database wordpress del Blog in costruzione.
Non vi sembrerà vero ma le ho provate tutte.
Dopo il “login”, vado su ”Pannello di controllo” dell’interfaccia Wordpress ma proprio non riesco a trovare il mio database wordpress (verione 2.9).
Grazie in anticipo.

30. Anonimo - 17 gennaio 2010

io non ho un dominio proprio. come faccio a trovare la ID pagine? non sono riuscita a vedrlo. Forse non avendo un dominio proprio non lo posso fare?
evatempo

31. LukePet - 25 gennaio 2010

Se avete un blog con lo spazio messo a disposizione di Wordpress.com, non potete accedere al database. Per farlo è necessario avere un proprio spazio su cui installare Wordpress; questo vi consente di gestire a pieno il database.

32. pinou - 16 febbraio 2010

proprio quello che cercavo… Ottimo!!!
;)

33. sigAA - 17 febbraio 2010

ciao
grazie per questa guida. sono novello di wp e di editing, ma sono riuscito a seguirla. ottima.
non riesco, però, a completare il punto 4. i post della cat vanno nella pagina specifica, ma anche in home.
il tema da me usato è

Elements of SEO 1.2

un aiutino!?!?!

34. LukePet - 24 febbraio 2010

Così su due piedi non è facile dirti quale possa essere il problema.

Io ultimamente ho notato che nel sito in cui ho implementato questa soluzione (non questo) non funziona la paginazione della home quando si vanno a ricercare i post più vecchi…è una cosa che devo verificare.

Nessun altro ha riscontrato questo comportamento?

35. Manuela - 5 marzo 2010

Ciao, ti ringrazio di questa soluzione, che mi è tornata davvero utile. L’unica cosa è che nella pagina creata l’articolo mi esce per intero, mentre io vorrei vedere l’excerpt come nella home page…come posso fare?

36. Salvatore - 5 marzo 2010

Proprio quello che mi serviva, funziona benissimo, ma ho lo stesso problema di Manuela: nella nuova pagina mi presenta gli articoli per intero e non fino al punto di interruzione (-more-) come nella pagina principale.   Per il mio tema ho utilizzato la pagina index.php e non page.php  .
Probabilmente dipende dal contenuto di questa funzione : <?php the_content();?>   che si occupa di visualizzare il contenuto del post.  Dove la trovo ?

37. Salvatore - 6 marzo 2010

Ho risolto il prolema del <–more–> che di default non funziona nelle pagine statiche con template.
Basta aggiungere queste 2 righe  dopo query_posts($query);
global $more;
$more = 0;
Adesso ho un altro problema. Come si fa ad escludere 2 categorie dalla home ?
come devo variare <?php
if (is_home()) {
query_posts("cat=-IDCATEGORIA");
}
?>

 

38. LukePet - 6 marzo 2010

Prova così…

query_posts("cat=-IDCATEGORIA1, IDCATEGORIA2");

39. Manuela - 6 marzo 2010

Grande Salvatore!! Grazie :)

INSERISCI IL TUO COMMENTO
In questo blog ognuno può dire la sua, i commenti sono liberi e le discussioni aperte ad ogni tipo di intervento. Verranno rimossi esclusivamente commenti spam o che risultino particolarmente offensivi.
Ogni messaggio pubblicato è un contributo fondamentale alla discussione...ora tocca a voi!