[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 , trackbackProprio 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.
POST CORRELATI:
- [Chicche] Wordpress, Apache e i permalink Comunicazione di servizio… Se vi...
- [Chicche] Wordpress: personalizzare le icone del plugin Sociable E’ già da un pò...
- [Chicche] Video gallery sul vostro blog WordPress! Avete un canale YouTube in...
- [Chiacchiere] Wordpress…qualcosa è cambiato Qualche tempo fa ho scritto...
- [Chicche] Wordpress: plugin su plugin…ecco alcuni links da spulciare In questo periodo ho smanettato...
- [Chicche] Stili per il vostro tema K2 su Wordpress In questo periodo sto configurando...




































Commenti»
Carina questa cosa, non è una feature che mi serve però non si sa mai… quasi quasi faccio un pingback per tenerne traccia!
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?
Ciao Fabio, ti ho risposto nel post relativo. Clicca qui: http://pollosky.it/2007/04/30/ubuntu-rete-windows-linux-con-samba/#comment-5020
mi seriva una cosa del genere nel mio blog, i miei complimenti la guida è semplice e accurata. A me funziona tutto alla perfezione.
Grazie, mi fa piacere che ti sia stata utile.
Ottimo tutorial davvero!
Ma se uno volesse visualizzare in quella pagina solo titolo e autore, senza tutto l’articolo?
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!
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 !
Ma che commenti intendi? quelli su ogni singolo post?
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)
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).
ok, proverò a controllare… ti faccio sapere, grazie. ciao!
grazie mille per la chiarezza . molto utile
…era proprio quello che stavo cercando! ottima guida, veramente chiarissima!
Grandeeeee!! questo si che è utile….
Ciao, posso chiederti aiuto? come mai a me esce un solo articolo? ho provato a controllare il codice ma e’ identico al tuo..Aiuto!!;)
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.
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
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.
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
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.
…bene!!!
non c’entra alcunché l’opzione “Modifica CSS” ?!???
No…i CSS riguardano solo gli stili.
Funziona, ma il codice dell’index non impedisce la pubblicazione nella home…
Grazie mille, funziona benissimo ;)
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?
Risolto…
L’editor non mi inseriva una riga vuota dopo il primo <?php ma scriveva <?php/* Template Name: Pagine_Personali */ tutto sulla stessa riga…
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
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.
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
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.
proprio quello che cercavo… Ottimo!!!
;)
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!?!?!
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?
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?
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 ?
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
<?phpif (is_home()) {
query_posts("cat=-IDCATEGORIA");
}
?>
Prova così…
query_posts("cat=-IDCATEGORIA1, IDCATEGORIA2");Grande Salvatore!! Grazie :)