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! 😉



Commenti

  1. ale ha detto:

    grazie, il tuo post mi è stato utile.

    1. Stefano Venneri ha detto:

      Grazie a te per la visita! 🙂

  2. puppy training school…

    […]a fantastic source of information which we found to be very beneficial[…]…

  3. Jane Berey ha detto:

    Hey there administrator, I clearly wished to firmly place a swift remark to firmly declare that in fact I enjoyed your posting. Thanks!

  4. trees ha detto:

    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.

  5. google backwards ha detto:

    I am happy that I noticed this web blog, precisely the right info that I was looking for!

  6. 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?

    1. Stefano Venneri ha detto:

      Usually about 1-2 times for week. 😉

  7. BG mail ha detto:

    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.

  8. memicha ha detto:

    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

  9. Danilo ha detto:

    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

  10. StefanoV ha detto:

    Scrivimi un’email con il codice ke hai modificato e dalla riga prima dell’incriminata a quella dopo

  11. StefanoV ha detto:

    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..

  12. Danilo ha detto:

    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

  13. StefanoV ha detto:

    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…

  14. Danilo ha detto:

    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

  15. StefanoV ha detto:

    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..

  16. Danilo ha detto:

    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

  17. StefanoV ha detto:

    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…

  18. Danilo ha detto:

    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

  19. Danilo ha detto:

    Era proprio ciò che cercavo…complimenti. Ps ora provo ma se ho difficoltà ti prego di aiutarmi. Grazie e ciao

  20. StefanoV ha detto:

    Ciao Edo, prova a postarmi dalla linea precedente a quella incriminata, a quella dopo… è sicuramente un problema di sintassi..

  21. Edo ha detto:

    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

  22. StefanoV ha detto:

    Grazie a te! 😉

  23. dambro78 ha detto:

    grazie, sei in gamba!

  24. StefanoV ha detto:

    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….

  25. dambro78 ha detto:

    Che vuol dire “quasi identico”, cosa deve essere diverso tra archive e page?

  26. unky90 ha detto:

    6 uN LuPo !!! :p

%d blogger hanno fatto clic su Mi Piace per questo: