Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Ottenere una pagina con post di una categoria in WordPress ed eliminarla dalla index

Aprile 6th, 2008 by Giovanni Caputo

Propongo a tutti i lettori una soluzione in WORDPRESS per ottenere un pagina con i post appartenenti ad una categoria e allo stesso tempo non far visualizzare tali post nella home del sito

Ho ottenuto questa soluzione dopo vari tentativi e dopo aver ricercato con esito negativo plug-in adatti a questo scopo. Nel mio caso ho gestito la sezione paper-toy di questo sito. Come potete vedere se aprite tale pagina, dal menù, vengono visualizzati alcuni articoli che invece nella home non vedrete.

Per prima cosa ho creato un nuova categoria e ho preso nota dell’id di questa categoria, successivamente ho creato un template di pagina seguendo la guida a in inglese di wordpress. GUIDA TEMPLATE PAGINA.

Quindi ho creato un nuovo file che verrà caricato sul server nella cartella: directoryBlog/wp-content/themes/nomeTema con il seguente contenuto. In particolare ho copiato il codice base che è presente, per la visualizzazione dei post, nella pagina index o anche nell’ archive.php alla quale ho effettuate opportune modifiche che descriverò in seguito.

<?php
/*
Template Name: Paper Toy
*/
?>
<?php get_header(); ?>
<div id="left-wrap">
<div id="content">
<div class="page">
<?php
if(!empty($_GET['paged']))
$paged = $_GET['paged'];
else $paged=1;
query_posts('cat=403&paged='.$paged) ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><?php the_title(); ?></h2>

<div class="entry">
<?php the_content(__('Read the rest of this entry »','wp_multiflex')); ?>
</div>
<?php link_pages('<p>'.__('Pages:','wp_multiflex'), '</p>', 'number'); ?>
<p class="suffix">
<?php edit_post_link(__('Edit','wp_multiflex'), '', ' | '); ?>  <?php comments_popup_link(__('No Comments »','wp_multiflex'), __('1 Comment »','wp_multiflex'), __('% Comments »','wp_multiflex')); ?>
</p>
<?php endwhile; endif; ?>

<div class="bottomnavigation">
<div class="alignleft"><?php next_posts_link(__('« Previous Entries','wp_multiflex')) ?></div>
<div class="alignright"><?php previous_posts_link(__('Next Entries »','wp_multiflex')) ?></div>
</div>
<p class="Modifica Pagina"><?php edit_post_link(__('Edit','wp_multiflex'),'',''); ?></p>
</div><!-- Close id="page" -->

</div><!-- Close id="content" -->
<?php get_sidebar(); ?>
</div> <!-- Close id="left-wrap" -->
<?php include (TEMPLATEPATH . '/right-sidebar.php'); ?>
<?php get_footer(); ?>

Le righe aggiunte, e quindi non copiate dal file index.php, sono solo 4 righe:

if(!empty($_GET[‘paged’]))
$paged = $_GET[‘paged’];
else $paged=1;
query_posts(‘cat=403&paged=’.$paged) ?>

Le prime 3 di queste servono a gestire la selezione dei post nella varie pagine quando ci si inizia a spostare su vecchi articoli postati nella stessa categoria. Quindi per prima cosa ho inizializzato la variabile $paged con il numero di pagina che opzionalmente viene passato in automatico attraverso l’url, se così non è, perchè si è fatto accesso alla pagina PAPER-TOY dal menu, la inizializzo a 1.

Successivamente seleziono i post, con la funzione query_posts,(guida query_posts), della sola categoria “403” che corrisponde appunto a quella di cui voglio visualizzare i post e poi gli ho segnalato da quale pagina partire.

Successivamente ho creato una pagina bianca normale alla quale ho associato attraverso l’apposita sezione/menu dell’interfaccia di wordpress il template creato.

Infine per non permettere di visualizzare i post di una categoria nella home del sito ho modificato il file index.php del template usato.

In particolare ho aggiunto 2 righe:

dopo la riga, di solito simile a tutti i temi:

<?php while (have_posts()) : the_post(); ?>

la riga:

<?php if ( !(in_category(‘403’)) ) { ?>

e prima della riga:

<?php endwhile; ?>

la riga:

<?php } ?>

Queste righe servono appunto a non eseguire le istruzioni contenute tra le 2 se il post appartiene appunto alla categoria della quale non si vogliono vedere gli articoli.

Se avete altre soluzioni, magari più semplici, fatemi sapere!!

Grazie a tutti!!!

Questo post è stato postato domenica, Aprile 6th, 2008 at 18:57 nella categoria Pensieri, tutorial. Tags:, .
Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.

28 responses about “Ottenere una pagina con post di una categoria in WordPress ed eliminarla dalla index”

  1. Federico said:

    Grazie, era proprio quello che cercavo 😀

  2. Giovanni Caputo said:

    figurati… anzi spero che sia stata utile e comprensibile

  3. Escludere post di una categoria da una pagina o dalla home - Caputo’s Blog - Di tutto di + said:

    […] Ottenere una pagina con post di una categoria in WordPress ed eliminarla dalla index […]

  4. Problemi Wordpress “Read More” nei template di pagina - Caputo’s Blog - Di tutto di + said:

    […] Ottenere una pagina con post di una categoria in WordPress ed eliminarla dalla index […]

  5. FutuRo said:

    volevo copiarvi l’idea…. ma alla fine…
    come faccio a sapere che id hanno le categorie?

  6. Giovanni Caputo said:

    dal menu di amministrazione :
    Gestione / categorie /

    baste ke ti posizioni con il puntatore del mouse su una categoria, senza cliccare e vedi l ‘url che compare in basso alla finestra del browser. Sarà qlcs del tipo

    NOME_SITO/wp-admin/categories.php?action=edit&cat_ID=12

    in questo caso la categoria è 12

  7. Giovanni Caputo said:

    Forse ho trovato un plug in con lo stesso scopo, al momento nn l ho ancora provato :
    http://wordpress.org/extend/plugins/list-category-posts/

  8. Giorgio said:

    Ciao a tutti e grazie per aver postato questa soluzione.
    Pero’ io con WP 2.6 ho un problema.
    Ho impostato di bisualizzare solo 5 post per pagina. Ho creato una categoria news ed ho inserito il codice dentro index.pxp per non visualizzare i post di news nella pagina principale. funziona tutto bene se inserisco meno di 5 post nella categoria news, sotto questo numero vedo i post news solo sotto la categoria news, ma dal quinto post news in poi la home page mi appare completamente vuuota di post, appare solo la barra di destra e la freccetta per tornare al post precedente.
    A cosa puo’ essere dovuto questo problema?
    La cosa strana e’ che se eliminando il quinto post dalla categoria news, tutto ritorna a funzionare correttamente.
    Succede anche a voi?

    Giorgio

  9. Giorgio said:

    Forse ho capito un po di piu’.
    Ogni volta che inserisco un post nella categoria “News” (che non viene visualizzato nella main page, sparisce un post dalla main page. Quindi penso che ci sia un contatore che comunque quando arriva a 5 (non importa in che categoria il post e’) non visualizza piu’ niente.

    Qualcuno sa come usare e dove trovare questo contatore?

    Giorgio

  10. Giorgio said:

    ho trovato questo plugin che mi risolve il problema 🙂

    http://wordpress.org/extend/plugins/advanced-category-excluder/installation/

  11. Giovanni Caputo said:

    ma che problema risolve?
    Questo plug in elimina i post di una categoria dalla home e/o crea pagine con i post di una categoria?

  12. Giovanni Caputo said:

    cmq come puoi vedere a me funziona bene su questo blog. ank io ho la vers 2.6.
    hai seguito anke l’altro post:
    http://rat86.netsons.org/blog/?p=406

  13. Giorgio said:

    Ciao, scusami, ho scritto un po difretta ieri perche’ stavo sperimentando diverse soluzioni.

    Io non tentavo di creare pagine con i post di una categoria, solo di rimuovere dalla home page i post della categoria News.
    Usando i comandi da te descritti nel tuo articolo, quelli da inserire dentro il loop, funzionava tutto a dovere ma (nel mio caso che ho parecchi plugin abilitati) ogni volta che inserivo un post nella categoria “News” non veniva visualizzato un post non “News” nella main page. In pratica, se io setto wordpress di visualizzare 5 post a pagina, inserisco 5 post non “News” e vengono visualizzati nella main. Poi inserisco un post “News” che correttamente non e’ visualizzato nella main page, ma solo nella categoria “News”, ma allo stesso tempo dalla main page sparisce un post precedentemente visualizzato. Quindi pensavo che wordpress ha un contatore dentro il loop che pero’ non viene decrementato se io gli dico di non visualizzare un certo numero di post nella main.

    Come ho scritto, io ho parecchi plugin attivati nel mio blog, cosi’ forse mi ritrovo questo effetto collaterale non voluto.

    Grazie al tuo articolo sono riuscito comunque ad arrivare alla soluzione voluta ed e’ una delle pochissime discussioni presenti in rete.

    Grazie

    Giorgio

  14. piscione75 said:

    Ciao a tutti!
    e complimenti per questa guida.
    Infatti pensavo di ottenere con questa guida qualcosa di simile:
    Io voglio creare una sorta di “area Riservata” accessibile solo a pochi utenti, a cui fornirò la password!Creando una pagina/sezione protetta, dove all’interno ci sono link e info non per tutti.
    Premetto: provato con .htaccess ma nulla.
    provato con PSW di default di WP, ma nulla
    Uso WP 2.5.1 in una Intranet Lan.
    Grazie help me!

  15. Giovanni Caputo said:

    non penso ke risolvi con questo meccanismo…anzi… non è per niente sicuro….

  16. piscione75 said:

    Grazie per la risposta!
    come mi consigli di fare..uffi:(
    una cosa che dovrebbe essere così semplice…!

  17. Giovanni Caputo said:

    forse questo plug in può esserti utile
    http://wordpress.org/extend/plugins/capa/

  18. piscione75 said:

    Grazie, proverò e vi farò sapere! spero davvero che possa fare al caso mio..!!

  19. piscione75 said:

    UFFI:(
    allora ho provato il plugin (interfaccia molto intuitiva), facendo varie prova, tentativi su tutte le pagine o categorie..ma nulla!
    Da premettere che và in contrasto con “include page” (nel senso che fà vedere tutte le pagine, invece io con il plugin ho creato delle pagine madri e sotto pagine).
    poi anche mettendo check all page cmq non và, anche perchè non fà immetere password o cose simili!
    pensavo che avevo trovato la soluzione!! 🙁

  20. Giovanni Caputo said:

    onestamente nn ho capito quale sia attualmente il problema con questo plug-in. Forse nn ho capito bene quali sono le condizioni in cui ti ritrovi, quelli che sono i tuoi requisiti…

    cmq prova a cercare altri plug-in simili

  21. piscione75 said:

    Ok allora:
    WP 2.5.1 sito in intanet lan con pagina statica.

    Il mio problema, è creare una pagina/sezione con accesso riservato a pochi e quindi con psw.
    Siccome non mi prende la protezione standard di WP (cioè immetto la psw, ma come se non riconoscesse la protezione di default delle pagine di WP).
    il plugin (CaPa), sembrava ok, ma in realtà non funzionava..non mi faceva nessuna protezione..
    e poi andava in contrasto con il plugin “include page” che uso per avere delle pagine madri e sub page (include ed esclude le pagine da visualizz tramite ID).
    eventulmente creando una nuova categoria, poi quando scrivo un post.. mi và a sostituire l’articolo (statico che fà da home).
    Spero di essere stato chiaro…

    cmq grazi a tutti.. ma aiutooo

  22. piscione75 said:

    ho fatto un bel casino!!!! aiutoooo
    pensavo di aver trovaro il plugin x me:
    user_access_manager
    dopo averlo installato.. mi dava errore
    user_acces_manager.php line 1317
    provo a cancellare questa..
    la fine!!
    tutto il web server (phpmyadmin-localhost) mi richiede un user&password.. le ho provate tutte (anche la root) ma niente!!!!!!!!
    questo è l’errore di autenticazione:

    Il server localhost all’indirizzo WP-Files richiede un nome utente e una password.
    Authorization Required
    401 This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn’t understand how to supply the credentials required!
    grazie

  23. Giovanni Caputo said:

    bel casino….

  24. piscione75 said:

    ho risolto questo casino.. infatti mi aveva generato l .htaccess e .htpasswd in localhost… e mi è bastato cancellarlo! wow meno male…il PC ha rischiato di fare un bel volo!
    cmq resta sempre il mio problema iniziale!
    ma xchè cosa genera che non mi prende la PSW di default della pagine (che avrei risolto)..è come se non la prendesse.. (wp-pass)..!!!?
    grazie

  25. briareoz said:

    Grazie per l'ottima guida. Funziona alla grande. Nella sidebar mi compare questo messaggio "You are currently browsing the archives for the introduzione category.", è possibile eliminarlo?

  26. briareoz said:

    scusate… ma per non visualizzare i post di una categoria figlia nell'elenco della madre? Qualcuno ci ha pensato?

  27. Paolo Leonardi said:

    Ciao, il codice per escludere una categoria dalla home non funziona, aimé… Lo ho inserito tutto come da guida, ma poi quando pubblico un post di quella categoria, compare in home regolarmente…

  28. giocaputo said:

    mi sembra strano. mandami il codice.

Lascia un commento

You must be loggati to post a comment.