WordPress T&T: Come inserire i post in una pagina personalizzata.
Ieri sera stavo vagando per le numerose opzioni di WordPress 2.5.1, e mi è venuta un idea: Creo la Pagina PORTFOLIO dove inserirò i miei lavori come normalissimi post…
Allora vado a scrivere un Post, e cerco l’opzione: “inserisci post in Pagina…”, ma nulla… solo in categorie!
Ma come?! I Post solo nella home? E nelle pagine che ci metto?! 4 scritte semplici?! Dobbiamo Cambiare la Situazione!!!
Vi è mai Capitato? Se Si e volete inserire i Post grazie ad un Trucco, seguite questo Tutorial.
Premessa:
– Fate dei backup dei file prima di modificarli
– La guida richiede un minimo di conoscenza base di PHP e HTML
– Non mi assumo responsabilità di quello che potreste combinare mettendo mano al codice.
Ok, Iniziamo:
Allora, i nostri obbiettivi principali sono:
1. Far sì che nella pagina vengano visualizzati i post (usando un trucco)
2. Evitare che nella index vengano visualizzati i post contenuti nella pagina
3. Evitare che il menu sveli il trucco usato (capirete dopo).
4. Evitare (se presenti) che quando il post è aperto, vengano visualizzati richiami ad altri post, e che quindi il trucco venga scoperto.
Iniziamo ad aprire il file page.php del template che stiamo usando, e modifichiamolo in modo che sia quasi identico alla pagina archive.php (cioè la pagina che mostra le categorie).
Ora creiamo una nuova Pagina dal pannello admin, diamole solo il titolo senza scrivere nulla all’interno.
Andiamo a scrivere il primo post della nostra pagina appena creata.
Dopo averlo scritto, andiamo nelle opzioni in basso e clicchiamo su “Aggiungi Nuova Categoria”.
Creiamo una Categoria, meglio se ha lo stesso nome del titolo della pagina che abbiamo creato prima (Capito il trucco? La pagina mostra una categoria, che renderemo nascosta facendola sembrare una pagina a sè 😀 ).
Ora Mettiamo la Spunta solo sulla categoria appena creata e pubblichiamo il post.
Ora, nel caso avete copiato la pagina archive.php, togliete dalla pagina page.php il div “navigation” e tutto il suo contenuto, e dove volete che venga stampato il nome della pagina mettete il codice: <?php wp_title() ?>
Veniamo al Punto 2 dei nostri obbiettivi:
Andiamo a trovarci l’id della categoria che abbiamo creato poco fa (se non avete i permalink ottimizzati lo vedete subito dalla Query String cat=N – dove N è il numero della categoria, altrimenti togliete i permalink guardate il numero di categoria e li rimettete).
Supponiamo che l’ ID sia 7.
Apriamo la pagina index.php e subito dopo la richiesta dell’ header (funzione: <?php get_header(); ?> ), inserite il codice:
<?php $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1; ?>
<?php query_posts(“paged={$paged}&cat=-7”); ?>
dove 7 è l’id della categoria da non visualizzare.
Ora dobbiamo soddisfare il 3° Punto, cioè nascondiamo la categoria nella sidebar:
State pensando ad un blocco condizionale in php? Sbagliato!!
Apriamo il file sidebar.php.
Cercate la query che visualizza le categorie: (di solito è <?php wp_list_cats(‘sort_column=name&optioncount=1&hierarchical=0’); ?>).
Aggiungiamo la categoria da nn mostrare, cioè la 7 in questo esempio e la mettiamo come parametro della variabile exclude: <?php wp_list_cats(‘sort_column=name&optioncount=1&hierarchical=0&exclude=7’); ?>
Per il Punto 4, apriamo la pagina single.php
Subito dopo il richiamo dell’header inserite il codice: <?php $the_cat = get_the_category(); ?>
Se avete il menu di navigazione, mettete prima del div di navigazione, il codice: <?php if($the_cat[0]->cat_ID != 7) : ?> (dove 7 è sempre la categoria creata) e subito dopo: <?php endif; ?>
Ora se avete in basso la visualizzazione della categoria del post, ad esempio:
Categoria: <?php the_category(‘, ‘) ?><br />
cambiatelo in:
<?php if($the_cat[0]->cat_ID != 7) : ?>
Categoria: <?php the_category(‘, ‘) ?><br />
<?php else : ?>
Pagina: <?php echo $the_cat[0]->cat_name; ?><br />
<?php endif; ?>
Infine aprite il file page.php e subito dopo la richiesta dell’header, inserite il codice:
<?php if(is_page(“Portfolio”)) : ?> // dove Portfolio è il nome della pagina creata
<?php query_posts(‘cat=7&posts_per_page=-1’); ?> // 7 è l’id della categoria creata prima
<?php endif; ?>
Questo farà sì che solo la pagina chiamata Portfolio visualizzerà i post!
Ecco fatto… Da notare che il trucco è presente anche nel mio Blog per la Pagina PortFolio che contiene i miei lavori.
Tutorial creato da me, commentate in tanti! Alla Prossima! 😉
grazie, il tuo post mi è stato utile.
Grazie a te per la visita! 🙂
puppy training school…
[…]a fantastic source of information which we found to be very beneficial[…]…
Hey there administrator, I clearly wished to firmly place a swift remark to firmly declare that in fact I enjoyed your posting. Thanks!
Thank you for every other informative site. The place else could I get that type of info written in such an ideal way? I’ve a undertaking that I’m just now running on, and I’ve been on the glance out for such information.
I am happy that I noticed this web blog, precisely the right info that I was looking for!
I’ve been absent for a while, but now I remember why I used to love this site. Thank you, I’ll try and check back more often. How frequently you update your website?
Usually about 1-2 times for week. 😉
I do accept as true with all the concepts you’ve presented in your post. They are really convincing and can definitely work. Nonetheless, the posts are very brief for beginners. May just you please lengthen them a bit from subsequent time? Thanks for the post.
Ciao! ma il tuo articolo vale anche per chi vuole inserire i post (articoli) in 2 o più pagine, o solo perchè appaiano in UNA pagina diversa dalla home? Perchè se è così quello sono riuscita a farlo da admin senza cambiare il codice, a me servirebbe che trattasse le categorie come pagine, per fare i post in almeno due pagine diverse. Secondo te il tuo trucco funzionerebbe?
Grazie in anticipo
Ok bene allora continuo: ho individuato l'id della categoria da me chiamata "PROVA" quindi nel file index.php dopo la funzione ho aggiunto la stringa da te indicata (azz non riesco a fare un copia incolla)
'
'
A questo punto non va avanti e mi segnala il seg messaggio:
<Parse error: parse error in c:programmieasyphp1-8wwwwp-contentthemesclickerindex.php on line 3
Scrivimi un’email con il codice ke hai modificato e dalla riga prima dell’incriminata a quella dopo
Devi continuare, perkè le modifiche permettono:
1. di impostare la pagina in modo ke riconosca i post della categoria e li visualizzi.
2. di nascondere dalla home i post della pagina, e la categoria in sidebar..
Ciao Stefano, ci riprovo confidando nella tua pazienza.
“Iniziamo ad aprire il file page.php del template che stiamo usando, e modifichiamolo in modo che sia quasi identico alla pagina archive.php (cioè la pagina che mostra le categorie).
Ora creiamo una nuova Pagina dal pannello admin, diamole solo il titolo senza scrivere nulla all’interno.”
Ora, dal menu ARTICOLI inserisco un nuovo post completo di titolo e spunto la categoria prima creata, che ha lo stesso nome della pagina.
Ora devo continuare ad effettuare le modifiche indicate nl tutorial oppure funziona già da ora?
Di nuovo grazie
Io ho wp 2.8.1, la mod è stata creata su wp 2.5.1 ma è tutt’ora funzionante (vedi pagina portfolio di questo blog)
Quando dal menu articoli aggiungi il post, a destra tra le categorie dovresti trovare la categoria che ha il nome della tua pagina… (da me Portfolio)
L’articolo va inserito solo in quella categoria…
Ciao Stefano, ci riprovo confidando nella tua pazienza.
“Iniziamo ad aprire il file page.php del template che stiamo usando, e modifichiamolo in modo che sia quasi identico alla pagina archive.php (cioè la pagina che mostra le categorie).
Ora creiamo una nuova Pagina dal pannello admin, diamole solo il titolo senza scrivere nulla all’interno.”
FATTO
“Andiamo a scrivere il primo post della nostra pagina appena creata.”
Primo problema: io uso Wp 2.8 e in wp-admin un nuovo post lo posso aggiungere solo dal menù articoli, e così facendo il post appare sempre nella pagina principale e non nella nuova pagina appena creata.
Di nuovo grazie
Mmm non ho capito nulla…
Segui passo passo la guida e fermati a kiedere spiegazioni se non capisci bene qualkosa…altrimenti capire cosa non va dopo aver fatto tutto è un casino..
Prob sbaglio qualcosa: copio il cont del file archivie.php nel file page.php, quindi creo una nuova pagina e la intitolo PROVA. A questo punto dovrei cambiare la categoria ma in una pagina questo non è possibile, o si? e se si come faccio?. Comunque visualizzo la nuova pagina PROVA, clicco sul titolo che, a differenza di prima diventa linkato, ma non mi appare la finestra per il commento. Inoltre appare la riga “posted in etc etc Dove sbaglio? Ciao e ancora grazie
Significa ke devi copiarti tutto archive.php in page.php e modifichi l'html in modo che appaia che sia una pagina e non una categoria…
Tu copia tutto e poi magari alla fine vedi cosa non ti piace e modifichi quella pagina…
Dunque, primo problemino: al passo 1 dici di aprire il file page.php del template che stiamo usando, e modificarlo in modo che sia quasi identico alla pagina archive.php (cioè la pagina che mostra le categorie).
Cosa intendi per quasi uguale? Devo copiare esattamente il contenuto del file archivie.php nel file page.php oppure devo eliminare qualcosa? Ciao e grazie
Era proprio ciò che cercavo…complimenti. Ps ora provo ma se ho difficoltà ti prego di aiutarmi. Grazie e ciao
Ciao Edo, prova a postarmi dalla linea precedente a quella incriminata, a quella dopo… è sicuramente un problema di sintassi..
ciao e prima di tutto complimenti.
Ho però un problema con il codice, dopo aver effettuato le modifiche mi da errore (unexpected ‘=’ in index.php ) e quindi non funziona più nulla.
Non capisco però quale possa essere questo = che da problemi ( ho copiato i pezzi così come li hai postati, cambiando solo il numero della categoria)
grazie in anticipo
Edo
Grazie a te! 😉
grazie, sei in gamba!
Quasi identico perchè:
Archive è il file che mostra tutti i post per quella categoria, page invece non ha possibilità di mostrare i post… quindi devi copiare il codice php di archive in modo che anche page possa contenere i post…
Se vuoi far prima, la copi tutta e alla fine poi la modifichi….
Che vuol dire “quasi identico”, cosa deve essere diverso tra archive e page?
6 uN LuPo !!! :p