Twitter Profile
salta alla navigazione

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($query_string . "&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.

  • http://www.piccoligrilletti.com Rob Alferi

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

  • fabio

    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?

  • http://pollosky.it LukePet

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

  • http://utopiamo.altervista.org Pierpaolo

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

  • http://pollosky.it LukePet

    Grazie, mi fa piacere che ti sia stata utile.

  • Ale

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

  • Carlo

    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!

  • http://www.laboffa.it slovo

    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 !

  • http://pollosky.it LukePet

    Ma che commenti intendi? quelli su ogni singolo post?

  • http://www.laboffa.it slovo

    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)

  • http://pollosky.it LukePet

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

  • http://www.laboffa.it slovo

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

  • nando

    grazie mille per la chiarezza . molto utile
     

  • Anonimo

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

  • mattia

    Grandeeeee!! questo si che è utile….

  • Emilio

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

  • http://pollosky.it LukePet

    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.

  • Claudio

    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

  • http://pollosky.it LukePet

    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.

  • http://cresciteundodimartijno.wordpress.com/ martino

    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

  • http://pollosky.it LukePet

    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.

  • http://cresciteundodimartijno.wordpress.com/ martino

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

  • http://pollosky.it LukePet

    No…i CSS riguardano solo gli stili.

  • http://graffiati.it mario

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

  • http://pescepalla.altervista.org/blog/ PescePalla

    Grazie mille, funziona benissimo ;)

  • http://www.zabriskiepoint.eu Stefano

    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?

  • http://www.zabriskiepoint.eu Stefano

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

  • http://www.umbe.org Umbe

    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

  • http://anzioblog.altervista.org/ Ettore

    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.

  • Anonimo

    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

  • http://pollosky.it LukePet

    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.

  • pinou

    proprio quello che cercavo… Ottimo!!!
    ;)

  • sigAA

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

  • http://pollosky.it LukePet

    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?

  • http://www.mlangella.com Manuela

    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?

  • http://www.chiprotesta.it Salvatore

    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 ?

  • http://www.chiprotesta.it Salvatore

    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");
    }
    ?>

     

  • http://pollosky.it LukePet

    Prova così…

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

  • http://www.mlangella.com Manuela

    Grande Salvatore!! Grazie :)

  • Francesco

    Grande, Grazie mille!

  • Barbara

    Ottimo articolo,
    utilizzando il theme Atauhalpa ho però un problema. Ho impostato la pagina news e la pagina eventi ciascuna che visualizza le categorie di post corrispondenti. Ho settato la visualizzazione a 3 post per pagina però non funzionano i tasti older post / newer post . Cliccando sui link non succede nulla, qualcuno sa darmi una mano?

  • http://www.chiprotesta.it Salvatore

    si, ci sono passato anche io .
    Si deve sostituire la query    “query_posts("cat=-IDCATEGORIA");"
    con  " query_posts($query_string . "&cat=-IDCATEGORIA");"


  • Barbara

    macchè, non sono ancora riuscita,
    sostituendo nella pagina news.php la query_post che Salvatore mi ha indicato mi ripete il titolo News ma non visualizzo più i post.
    Qui di seguito l’inizio del codice della pagina dove non mi funzionano più i tasti older / newer.
    <?php
    /*
    Template Name: News
    */
    ?>
    <?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” */ ?>
     <?php /* This outputs the next/previous post or page navigation.
     This can be edited at Atahualpa Theme Options -> Style & edit the Center column */
     bfa_center_content($bfa_ata[‘content_above_loop’]); ?>
    <div class=”post-headline”>  <h1>News</h1>  </div>
    <?php query_posts(‘cat=4′); ?>
     <?php /* The LOOP starts here. Do this for all posts: */
     while (have_posts()) : the_post(); $bfa_ata[‘postcount’]++; ?>

    Sicuramente sbaglio in qualcosa ma non ho ancora individuato il problema

  • http://www.dariolavaroni.com dario

    FANTASTICO!!!FANTASTICO!!!FANTASTICO!!!FANTASTICO!!!FANTASTICO!!!FANTASTICO!!!FANTASTICO!!!
     
     
    BRAVO!

  • Mirco

    Ottimo ! …una domanda aggiuntiva
    e’ possibile dopo aver fatto questa procedura visualizzare oltre ai vari post della categoria anche i contenuti inseriti nella pagina? (per avere quindi una descrizione della categoria)
    e quindi un esempio
    NEWS
    ciao questa è la pagina uno dove sono indicati tutte le News !
    ——————————————————————–
    e poi tutti i post di seguito !
     

  • http://www.pollosky.it LukePet

    Non so, penso che basti aggiungere la descrizione nella definizione del template della pagina…ma l’ho buttata lì così su due piedi. Con esattezza non so dirti, bisognerebbe fare qualche prova.

  • Enzo

    Ciao,

    Prima di tutto grazie per questo tutorial, mi ha risolto un grande problema (e sto imparando un po’ di php, che non fa male).
    Vorrei chiederti una cosa: dopo avere fatto tuttte queste modifiche (che funzionano tutte) nel tema neo-sapien06, mi sono sparite dalla homepage le due sidebar di destra. Da cosa può dipendere?
    Grazie ancora!

    Enzo

  • Paolo

    Grazie mille, questo tutorial è prefetto ed è quello che cercavo, però anche io vorrei visulaizzare solo i titoli e non l’articolo per intero come si può fare? Grazie in anticipo Paolo.

  • Gian Luca

    Ciao a tutti, sto provando a barcamenarmi con WP e mi piacerebbe fare proprio un Pagina “Albo” dove visualizzare molti articoli “annuari”. penso di aver seguito alla lettera tutto quanto scritto da voi precedentemente.
    ho creato un template copia di page.php ed ho inserito nuovo nome “albo” ed ho inserito solo questo:
    <?php
    query_posts(‘cat=30′);
    ?>

    dato che la mia categoria ID è 30 e gli articoli creati sono ad esso categorizzati.
    la Pagina “albo” che ho creato vuota è solo stata impostata con tempalte albo.php
    non riesco a visualizzare più di 1 solo articolo nella Pagina.
    avete un suggerimento!
     
     

  • daria

    Beh bello… ma dove uppiamo il file appena creato?

  • daria

    ah ok sempre nel tema di default del nostro wp!

  • mac

    salve a tutti . ottima guida ma….
    a me funziona solo sulla prima pagina e non sulla seconda o terza e via dicendo infatit mi posta sempre pa prima pagina con gli stessi articoli ache se vado sulle vecchie entry o pagine con i post più vecchi
    qualche sugeriento?
     

  • http://www.pollosky.it LukePet

    Controlla bene il codice inserito nell’index.php; inizialmente anche io avevo questo tipo di problema ma era perchè avevo scritto male l’istruzione query_posts($query_string . "&cat=-IDCATEGORIA");

    Avevo omesso il “$query_string” e quindi mi venivano sempre proposti i post della prima pagina.

  • mac

    Ciao e graize per la risposta ma mi sa che non mi sono spiegato bene..il mio problema è che nella nuova pagina creata non riesco a far visualizzare i post della seconda pagina della terza pagina e via dicendo ma mi mostra solo i priomi 10 articoli nella prima pagina e poi li ripete sempre uguali anche nella seconda, terza e via divcendo.
    il pezzo che dici di corregere invece a me pareva che servissi solo a non farli visulizzare anche nella home page cosa che invece io volgio fare.
    a questo punto non so come risolvere..
    spero di essere stato chiaro
     
    inseriesco anche il codice della index e della mia nuova pagina
    partiamo con la index.ph (WP versione 2.9.2)
     
     
    <?php get_header(); ?>

    <div id=”content”>

    <?php if ( function_exists( ‘get_smooth_slider’ ) ) { get_smooth_slider(); } ?>

    <?php include (TEMPLATEPATH . ‘/intro.php’); ?>

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php if ( !(in_category(‘982′)) && !(in_category(‘983′)) && !(in_category(‘984′)) &&!(in_category(‘985′)) ) { //  Vale escludo le categorie che hanno gli id specificati dentro le parentesi ?>

    <div class=”postWrapper”>

    <!– META –>
    <div class=”postmetadata”>
    <p class=”meta-date”>
    <span class=”date-day”><?php the_time(‘j’) ?></span>
    <span class=”date-month”><?php the_time(‘M’) ?></span>
    <span class=”date-year”><?php the_time(‘Y’) ?></span>
    </p>
    <p class=”meta-author”>by <?php the_author() ?></p>
    <?php edit_post_link(‘<p class=”meta-edit”>Edit</p>’, ”, ”); ?>
    <?php comments_popup_link(‘No Comments’, ‘1 Comment »’, ‘% Comments »’, ‘meta-comments’, ‘Comments off’); ?>
    <p class=”meta-categories”><?php the_category(‘, ‘) ?></p>
    <?php the_tags(‘<p class=”meta-tags”>’,’, ‘,'</p>’); ?>
    </div>

    <div class=”post” id=”post-<?php the_ID(); ?>”>
    <h1><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h1>

    <div class=”entry”>
    <?php the_content(‘<span class=”more”>More &raquo;</span>’); ?>
    </div>
    </div>
    </div>
    <?php } /* sta con il controllo delle categorie Vale*/?>
    <?php endwhile; ?>

    <div class=”nav nav-border-bottom”>
    <?php wp_pagenavi(); ?> <!– Navigatore pagine 1.2.3…. –>
    <!–<div class=”alignleft”><?php next_posts_link(‘&laquo; Older Entries’) ?>&nbsp;</div>
    <div class=”alignright”>&nbsp;<?php previous_posts_link(‘Newer Entries &raquo;’) ?></div>
    –>
    </div>
    <div class=”nav nav-border-bottom”>
    <p>
     
     
     
    questa la pagina nuova
     
    <?php

    /* Template Name: newtemplate */

    ?>
    <?php get_header(); ?>

    <?php query_posts(‘cat=107′);  ?>
    <?php $post = $posts[0]; // Hack. Set $post so that the_date() works.
    global $more;
    $more = 0;
    ?>
    <div id=”content”>

    <?php include (TEMPLATEPATH . ‘/intro.php’); ?>

    <?php if (have_posts()) : ?>

    <?php //il blocco dalla riga 7 ala 11 era qui ?>

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

    <div class=”postWrapper”>

    <!– META –>
    <div class=”postmetadata”>
    <p class=”meta-date”>
    <span class=”date-day”><?php the_time(‘j’) ?></span>
    <span class=”date-month”><?php the_time(‘M’) ?></span>
    <span class=”date-year”><?php the_time(‘Y’) ?></span>
    </p>
    <p class=”meta-author”>by <?php the_author() ?></p>
    <?php edit_post_link(‘<p class=”meta-edit”>Edit</p>’, ”, ”); ?>
    <?php comments_popup_link(‘No Comments’, ‘1 Comment »’, ‘% Comments »’, ‘meta-comments’, ‘Comments off’); ?>
    <p class=”meta-categories”><?php the_category(‘, ‘) ?></p>
    <?php the_tags(‘<p class=”meta-tags”>’,’, ‘,'</p>’); ?>
    </div>

    <div class=”post” id=”post-<?php the_ID(); ?>”>
    <h1><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></a></h1>

    <div class=”entry”>
    <?php the_content(‘<span class=”more”> More &raquo;</span>’); ?>
    </div>  
    </div>
    </div>

    <?php endwhile; ?>

    <div class=”nav nav-border-bottom”>
    <div class=”alignleft”><?php next_posts_link(‘&laquo; Older Entries’) ?>&nbsp;</div>
    <div class=”alignright”>&nbsp;<?php previous_posts_link(‘Newer Entries &raquo;’) ?></div>
    </div>

    <?php else : ?>

    <h2 class=”center”>Not Found</h2>
    <p class=”center”>Sorry, but you are looking for something that isn’t here.</p>
    <?php get_search_form(); ?>

    <?php endif; ?>

    </div> <!– / content –>

    <?php get_sidebar(); ?>

    <?php get_footer(); ?>
     
    graize a presto

  • mac

    Ciao,
    ho provato come mi hai detto tu ma non è cambiato nulla
    grazie lo stesso
    se hai altre info attendo con anzia

  • http://www.videofacebook.it Antonio

    Ho seguito la tua guida ed è andato tutto bene.
    Ti ringrazio, mi hai risolto un problema.

  • http://www.pixartica.com domenico

    Ciao, anche io ho lo stesso problema di mac. Nella nuova pagina creata vengono visualizzati soli un tot di post e se provo a navigare tra le pagine non succede niente, appaiono sempre gli stessi post.
    Grazie a tutti in anticipo.
     
     

  • http://www.pixartica.com domenico

    Ho trovato la soluzione. Dovrebbe servire anche a te (mac) visto che avevamo lo stesso problema. La pubblico affinchè possa servire anche a qualcun altro:
     

    <?php $paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
    query_posts(‘cat=14&paged=’.$paged.’&post_per_page=9′.get_option(‘posts_per_page’)); ?>

    basta utilizzare questo loop e impostare l’id della categoria e il numero di post per pagina da mostrare e come per magia cambiando pagina cambia anche il contenuto. :D

  • mac

    Grzie Domenico
    ma non mi funziona nelache così
    avevo già provato una soluzione simile ma nulla.
    Io uso Wp versione 2.9.2
    puo darsi dienda dal template o non so grazie cmq

  • Claudio

    Grande guida!!!
    Ho solo un piccolo problema che non riesco a risolvere.
    Nella nuova pagina in cui visualizzo gli articoli di una specifica categoria non vengono
    mostrati i commenti degli utenti.
    Solo che seleziono l’articolo da “articoli recenti” vengono visualizzati.
    Come posso risolvere?

    Grazie mille per l’attenzione.
    Claudio.

  • Pingback: Piccoli aggiornamenti «()

  • http://www.paolomaresu.com Paolo

    Ciao grazie 1000, guida molto molto utile…. anzi direi che fra tutte quelle presenti sul web è l’unica completamente corretta e funzionante!!!! un ringraziamento anche a Salvatore che ha risolto l’impaginazione!
    Paolo

  • http://www.solopensource.com gianpaolo

    Posso solo ringraziare per lo stupendo articolo che hai pubblicato … chiaro semplice e sopratutto UTILISSIMO, fare ordine a volte server proprio… grazie ancora
     
    gianpaolo

  • http://www.webdesignermilano.it web designer milano

    Scusate, se voglio suddividere le categorie in 3 colonne me la sbrigo inserendo la chiamata

    <?php
    $query= 'cat=IDCATEGORIA&orderby=date&order=DESC';
    query_posts($query);
    ?>

    nei 3 punti del template ed associando l'id della categoria che voglio visualizzare?

  • Pingback: Cinguettii del 2011-01-08 « Yvette's blog()

  • Pingback: Il restyling prosegue… « Yvette's blog()

  • robi

    salve, il codice della mia index è questo:
    <?php get_header();
    Protect();
    $blog_query = array(‘posts_per_page’ => (int)easel_themeinfo(‘home_post_count’), ‘paged’ => get_query_var(‘paged’ ));
    $posts = &query_posts($blog_query);
    if (have_posts()) {
    while (have_posts()) : the_post();
    easel_display_post();
    endwhile;
    easel_pagination();
    }
    UnProtect();

    get_footer(); ?>
     
    dove inserisco questa stringa?
    <?php
    if (is_home()) {
    query_posts($query_string . “&cat=11″);
    }
    ?>
     
    grazie!!!!

  • Pingback: Tweets that mention WordPress: pubblicare i post di una specifica categoria in una pagina dedicata | pollosky.it -- Topsy.com()

  • stefano

    ottimo articolo! molto utile
     
    Io avrei bisogno di scrivere qualcosa nella pagina e poi che vengano aggiunti gli articoli della categoria che gli ho assegnato.
    Dite che è possibile questo?

  • http://blog.foodandfoodies.com Simone

    Grazie per questo fantastico tutorial!
    Complimenti ti sono grato.
    Simone

  • http://neuroturistablog.altervista.org Francesca

    Grazie!Davvero utile, l’ho usato nel mio nuovo blog!

  • http://www.gianfrancomasi.com/blog/ Gianfranco

    ciao, finalmente quello che cercavo. Solo ho un dubbio prima di provare:
    è possibile ottenere questo risultato per più categorie nella stessa pagina? Mi interesserebbe avere nella pagina che creo, solo l’ultimo articolo per ogni categoria che ho creato. Esempio: nella pagina decido di mostrare 4 categorie e ogni volta che pubblico in queste, solo mi appare l’ultimo post.
    E’ possibile qualcosa del genere o è fantascienza?

  • Anonimo

    Grazie mille per il tutorial! Io però ho usato index.php anzichè page.php come base per il nuovo template, perchè usando page.php i post non risultavano commentabili.
    Ah, per visualizzare l’ID della categoria, basta andare sul pannello di controllo / categorie e passare il mouse sulla categoria prescelta. In basso sul browser compare l’url http://vistrosito/edit-tags.php?action=edit&taxonomy=category&tag_ID=7&post_type=post
    dove il numero che segue ID= è appunto quello della categoria!

  • http://www.pollosky.it LukePet

    @Gianfranco Non penso sia fantascienza, tutto è possibile…basta giocare un po’ con la query. Bisognerebbe mettersi lì e sbatterci un po’ la testa, ma sicuramente si puo’ fare. E’ chiaro però che ciò richiede un minimo di conoscenze tecniche per smanettare con il codice della pagina!

     

  • Antonio

    Grazie, guida eccezionale!

  • http://zz Gianni

    Bello funzionante ma nella nuova pagina mi sono scomparsi i metadati (data, autore, … )

  • macmonta

    Grazie, notevole lavoro. Ciao

  • carlo

    scusate, una variante del tema… per pubblicare nella home al posto di una categoria una pagina?
    Come dire… avere la pagina servizi e creare un riquadro nella hp contenente le prime righe (o paragrafo) della pagina di riferimento….
    Grazie!!!

  • Pippo

    <?php
    $query= 'cat=IDCATEGORIA&orderby=date&order=DESC';
    query_posts($query);
    ?>

     
    questo mi funziona, ma non riesco a vedere "lascia un commento" dopo ogni post

    Come si fa?
     
    grazie

  • Pietro

    grezie unmilione mi hai risolto parecchi problemi.
    Una domanda: Come mai nella pag col nuovo template (news) al posto di vedere TUTTI i post della cat news … vedo solo l’ultimo? e gli altri? :(
     
    @marco
    usa questo:
    <?php $myposts = get_posts(‘numberposts=5&category=4′);
    foreach($myposts as $post) : ?>
    <a href=”<?php the_permalink(); ?>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>
    <?php setup_postdata($post); ?> <?php the_excerpt(); ?>
    <?php endforeach; ?>
     

  • Pietro

    scusa….volevo dire CARLO non MARCO -.-“

  • Anonimo

    Ciao, grazie mille, stavo cercando questo codice, lo sto provando sulla 3.2.1 con template twenty eleven 1.2 ed ho lo stesso problema di molti, cioè mi visualizza solo l’ultimo post della categoria, qualcuno sa il perchè??? Grazie :)

  • Alessandro

    Sono “Anonimo del post precedente”, ho risolto, usavo come modello il page.php che non prevede il ciclo di visualizzazione di più post essendo le pagine di wordpress statiche.
    Mi ritrovo comunque con la problematica dei post ripetuti per pagine differenti dalla home.
    Help please!!! 

  • Francesco

    Semplicissimo il tutoria e tutto ma sorgono dei problemi.
    1. Non si vede più ne il titolo e nè il contenuto che era nella pagina prima.
    2. Si vede solo il titolo dell’articolo e oltretutto se ne vede solo uno di tutti gli altri che sono nella categoria.
    Mi aiutate gentilmente?

  • Francesco

    Ma insomma mi volete rispondere o no eh? Sono in attesa di una risposta

  • http://www.pollosky.it LukePet

    Francesco non è semplice darti una risposta, bisogna capire da cosa dipenda. Seguendo i vari passi del tutorial non dovrebbero verificarsi i problemi che tu indichi, però non vorrei che dipendesse dal particolare tema che stai utilizzando tu. Hai provato a cambiare tema e vedere se hai gli stessi problemi?

  • Alessandro

    Ciao LukePet, solo per sapere a te funziona la paginazione quando inserisci più post che non stanno quindi nella stessa pagina? Come ti ho scritto io lo sto provando sulla 3.2.1 con template twenty eleven 1.2. Grazie :)

  • Francesco

    Non penso sia un problema del tema perchè ho provato con quello principale e non ce la nemmeno il file page.php. Io uso 2010 Weaver e con questo mi funziona solo che mi fa vedere un solo post il più recente e basta senza data ne commenti. Se puoi aiutarmi mi faresti un grandissimo favore

  • Alessandro

    Purtoppo invece è proprio un problema di paginazione. Mi sembra che per i commenti basti dopo la query inserire le funzioni di visualizzazione dei commenti.
    Prova a dare un occhio qui:
    http://www.wordpress-it.it/wiki/Main/VisualizzaCommenti
    Altrimenti guarda il codice del singolo post che contiene anche commenti e lasciare il commento (solitamente si trova all’interno del div “content”) e controlla che richiami a funzione ti mancano. 

  • Alessandro

    P.S. Se ti fa vedere solo l’ultimo post anche il tuo è un problema di paginazione.
    Non è obbligatorio che ci sia una pagina page.php, bastano dei richiami a funzioni tipo <?php get_pagination() ?> che come ho scritto però non funziona richiamando sempre lo setsso post, Lukepet a te risulta o funzione?
    Grazie, Ale. 

  • Gabezoid

    Stesso problema di Pietro!
    Visualizzo solo l’ultimo post della categoria…gli altri, puff!
    forse con un “while” si risolve, ma non so dove inserirlo ne come!!

    baci! 

  • http://www.pollosky.it LukePet

    Non saprei dirvi con esattezza, la soluzione con il template mi ha funzionato, ma è una cosa ho fatto un paio di anni fa su un sito che ora non gestisco più, il tema che avevo utilizzato è questo qua http://www.methemes.com/free-wordpress-themes/cloudy/.

    Se riesco a sperimentarlo provo ad utilizzare <?php get_pagination() ?> e vedo come si comporta.

     

  • Gabezoid

    Non fraintendermi! Con altri temi ha funzionato alla grande, è un tutorial geniale! :)

  • Marica

    Salve, ho lo stesso roblema di Mac “il mio problema è che nella nuova pagina creata non riesco a far visualizzare i post della seconda pagina della terza pagina e via dicendo ma mi mostra solo i priomi 10 articoli nella prima pagina e poi li ripete sempre uguali anche nella seconda, terza e via divcendo.” Anche con la nuova stringa che proponeva Domenico non cambia nulla. Qualcuno alla fine ha trovato la soluzione? Grazie!

  • Marica

    Ho trovato la soluzione! La metto perchè potrebbe servire anche ad altri. Basta andare qui http://scribu.net/wordpress/wp-pagenavi/right-way-to-use-query_posts.html e fare esattamente ciò che c’è scritto.

  • http://www.ilbento.com bento

    ciao!!!! secondo te, è possibile, per esempio nella pagina creata dedicata alla categoria VASCO ROSSI, che il calendario mostri solo gli eventi legati alla categoria VASCO ROSSI, e non per esempio i miei altri post o altri eventi?

  • http://www.mondotorrent.eu/ leonidas

    ciao grazie per la guida 
    ho fatto tutto ma l’unico problema che trovo e il fatto
    che solo 6 post finiscono li ed i altri della categoria non van li e non so ne meno dove finiscono
    fammi sapere grazie  

  • http://www.mondotorrent.eu/ leonidas

    ce nessuno????

  • http://wpch.ch Teo

    Grazie dell’articolo! Vorrei però fare l’inverso di quel che dici, ovvero avere in homepage solo ed unicamente gli articoli relativi ad una determinata categoria: è possibile? Come??
    Grazie mille!! 

  • http://www.mondotorrent.eu/ leonidas

    Ciao teo, quello che vuoi fare tu e la cosa più semplice,
    hai 2 modi per farlo

    1. installa il plug in  simply exclude  
    e dopo di che decidi quale  categoria farlo apparire in home 
    ed escludendo tutte le altre,,
    e penso che questa e la cosa migliore
    al contrario della seconda opzione che devi fare tutto a mano

    2. devi incollare questo codice alla tua pagina index.php
    sotto la stringa header,,
     <?php query_posts($query_string . ‘&cat=-40′); ?>
    40 e l’ID della categoria che vuoi escludere  che poi lo sostituisci con la tua,,
    ciao 

  • http://wpch.ch Teo

    Sì, questo “simply exclude” mi pare proprio proprio sia quel che cercavo!! Grazie della segnalazione! ^_^

  • http://www.mondotorrent.eu/ leonidas

    ma di niente!! 

    io sto asp una risposta dal autore del sito
    ma ancora niente ! 

  • susi

    Grazie mille, proprio quello che cercavo! Finora inserivo le singole categorie in un menu, ma questo metodo dà un risultato molto più elegante. 

  • http://www.cascomania.it/wordpress ivan

    Grazie per la guida, ma io ho creato la pagina in php, la pagina su admin, e la categoria, mi pubblica i post nella categoria e nella pagina dove gli dico però mi escono sempre e cmq in home!!!!! Dove sbaglio?

  • zardevil

    Dettagliatissimo articolo ma manca un ultima parte per renderlo completo.
    Impostando sul pannello wordpress un massimo di 10 articoli per la categoria(CATEGORIA 1) principale, nella pagina creata per la (CATEGORIA 2) come descitto da questa guida gli articoli successivi al decimo spariscono non facendo comparire le diverse pagine come nella categoria principale.
    Vedo che molti di voi hanno lo stesso problema ma qualcuno per caso l’ha risolto?

  • Ale

    Guarda il commento 95 di Marica, dovrebbe essere la souzione

  • Marco

    ciao, ho provato ad estendere il procedimento a più categorie, impostando perciò più template.
    Quando cerco i template che ho creato (li cerco nel menu “attributi pagina” nel menu ‘modifica pagina’) trovo solo il primo di quelli che ho creato.
    Mi puoi aiutare?
    Grazie in anticipo 

  • Ale

    Sembra strano, a me capita di non trovarli nell’editor, sei sicuro di dare nomi differenti qui:
    <?php/*Template Name: NOMETEMPLATE*/?>  

  • Marco

    Oh oh, mi sento veramente un pollo.
    Grazie Ale, risolto 

  • marco

    Faccio riferimento alla serie di post sul modo per vedere i post successivi all’ i-mo (i è il valore impostato in wordpress, di default 10) per chiedere lumi. Ho:
    – create un nuovo template modificando il file template-blog.php (ho usato questo al posto di page.php in modo da poter visualizzare i metadati) come spiegato in questo tutorial;
    – sostituito la stringa “query_posts($query);” con la stringa “query_posts( array( ‘cat’ => IDCATEGORIA, ‘paged’ => get_query_var(‘page’) ) );” come da link riportato nel commento 95.

    Risultato: riesco solo a vedere i post della prima pagina
    Suggerimenti? 

  • Pomario

    Ottimo, funziona tutto alla perfezione!! Ora però ho una lista di articoli limitata e gli utenti non possono visualizzare i post più vecchi, come posso integrare un menu con la numerazione delle pagine personalizzato stile WP Pagenavi?
     

  • Andrea

    A distanza di quasi tre anni mi è tornato utilissimo questo articolo.
    Grazie!! 

  • marco

    Con riferimento al mio commento n. 110 ed al successivo di Pomario, vorrei postare la soluzione che ho applicato io – forse un po’ macchinosa, ma a me funziona.
    1. Ho usato il file template-blog.php, rinominandolo template-CATEGORIA.php. Dentro ho modificato solo:
    <?php get_template_part( ‘loop’, ‘blog’ ); ?>  in:
    <?php get_template_part( ‘loop’, ‘CATEGORIA’ ); ?>
    A questo punto ho editato il file loop-blog.php (rinominandolo loop-categoria.php), modificando la parte if/while.
    DA:

    Normal.dotm
    0
    0
    1
    39
    223
    Boscarato Costruzioni S.r.l.
    1
    1
    273
    12.0

    0
    false

    14

    18 pt
    18 pt
    0
    0

    false
    false
    false

    /* Style Definitions */
    table.MsoNormalTable
    {mso-style-name:”Tabella normale”;
    mso-tstyle-rowband-size:0;
    mso-tstyle-colband-size:0;
    mso-style-noshow:yes;
    mso-style-parent:””;
    mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
    mso-para-margin:0cm;
    mso-para-margin-bottom:.0001pt;
    mso-pagination:widow-orphan;
    font-size:12.0pt;
    font-family:”Times New Roman”;
    mso-ascii-font-family:Cambria;
    mso-ascii-theme-font:minor-latin;
    mso-fareast-font-family:”Times New Roman”;
    mso-fareast-theme-font:minor-fareast;
    mso-hansi-font-family:Cambria;
    mso-hansi-theme-font:minor-latin;}


    if ( have_posts() ) { $count = 0;
    ?>
    <div class=”fix”></div>
    <?php
                while ( have_posts() ) { the_post(); $count++;
                            woo_get_template_part( ‘content’, get_post_type() );
                } // End WHILE Loop
    } else {
                get_template_part( ‘content’, ‘noposts’ );
    } // End IF Statement
     
    A:
    if ( have_posts() ) { $count = 0;
    $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1; query_posts(“cat=ID_CATEGORIA&paged=$paged”);
    ?>
    <div class=”fix”></div>
    <?php
    while (have_posts()) { the_post(); $count++;
    woo_get_template_part( ‘content’, ‘page’ ); // Get the page content template file, contextually.
    } // End WHILE Loop
    } else {
    get_template_part( ‘content’, ‘noposts’ );
    } // End IF Statement                   

    Spero questo possa servire. Ciao a tutti
     

  • daniele

    scusate ma non ho capito come faccio ad inserire il nuovo template

  • daniele

    ok problema risolto con il template ora vedo gli articoli nella pagina con il template della categoria relativa ma non me li fa commentare!
    grazie

  • KaxthefeRet

    A mio parere, si sono errati. Dobbiamo discutere. Scrivere a me in PM.

  • marco

    Ma bisogna fare l’upgrade per fare questa cosa della pagina, o si può fare anche col WP gratuito?

  • http://www.pollosky.it LukePet

    Bisogna avere WordPress installato su un proprio spazio web, sulla versione online di wordpress.com non penso si possa fare.

  • http://subdir.com Mauresp

    Articolo utile ed interessante grazie!!

  • Gianluca

    ho lo stesso problema di tutti:
    non riesco a navigare tra le pagine della categoria.
    Lascio la mia email e spero nella vostra bontà affinche’ qualcuno mi risolva il problema.
    Grazie mille e complimenti per il sito! 

    P.S.
    magari potreste mandarmi una pagina php che risolve questo problema, in modo che tutto mi sia chiaro.
    Grazie ancora a tutti! 

  • Stefano

    Articolo utilissimo e importantissimo..Un ulteriore aiuto per favore: il passaggio 4 fa sì che non ci siano doppioni di post nella home e nel menu dove reindirizzato i post con una specifica categoria… grazie a questo codice nell’index del tema

    <?php
    if (is_home()) {
    query_posts($query_string . "&cat=-IDCATEGORIA");
    }
    ?>


    ok ora ho creato due categorie da suddividere nei menu...creato i template e correttamente tutto funziona ma se volessi eliminare i post doppi nella home? non una categorie ma due??Come devo modificare il codice dell'index grazie

    Grazie

  • Stefano

    Risolto!! La soluzione era tra i commenti 30 e qualcosa… gran guida
    grazie ancora
     

  • Stefano

    Risolto…sì…però ora non visualizzo più la possibilità di commentare i vari post suddivisi nelle varie pagine…soluzioni per favore?

  • http://ubumtusemplice.it Alfredo

    Ciao, 
    articolo molto utile,
    per evitare di fare casini nel database, ti chiedo, secondo te posso fare 
    <?php$query= ‘cat=IDCATEGORIA,IDCATEGORIA&orderby=date&order=DESC';query_posts($query);?>
     

  • http://www.iteam5.net/francesco Francesco Passantino

    Risolto il problema della paginazione, è sufficiente fare una copia del file index.php (al posto del file page.php, come suggerito in questo tutorial), per ottenere il codice di paginazione. Modificate le prime righe come nell’esempio sottostante:
    <?php
    /*
    Template Name: NOMEVOSTROTEMPLATE
    */
    ?>
    <?php get_header(); ?>
    <?php
    $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
    $query= ‘cat=NUMEROVOSTRACATEGORIA&orderby=date&order=DESC&paged=’.$paged;
    query_posts($query);
    ?>  

  • Armando Argano

    Sto imparando WP nella creazione del sito della nostra palestra di Judo.
    Ho creato, come nel tuo post originario, un template per raccogliere in una pagina (GARE) tutti gli articoli marcati con la categoria “gare”, ma viene visualizzato solo l’ultimo articolo pubblicato nella home page.
    Ho provato varie soluzioni tra quelle suggerite negli interventi qui sopra, ma senza esito.
    Ti sarei enormemente grato di un aiuto.
    Questo il codice del template (l’ID della categoria è quello giusto):
    <?php
    /**
     * Template Name: archiviogare
     * questo è il template che raccoglie i post categoria Gare (AA).
     * Please note that this is the WordPress construct of pages
     * and that other ‘pages’ on your WordPress site will use a
     * different template.
     *
     * @package WordPress
     * @subpackage Weaver II
     * @since Weaver II 1.0
     */

    weaverii_get_header(‘page’);
    $query= ‘cat=8&orderby=date&order=DESC';
    query_posts($query);
    ?>
    <?php
    if (weaverii_getopt(‘wii_infobar_location’) == ‘top’) get_template_part(‘infobar’);
    weaverii_inject_area(‘premain’);
    echo(“\t<div id=\”main\”>\n”);
    weaverii_trace_template(__FILE__);
    weaverii_get_sidebar_left(‘page’);
    ?>
            <div id=”container_wrap”<?php weaverii_get_page_class(‘page’); ?>>
    <?php        if (weaverii_getopt(‘wii_infobar_location’) == ‘content’) get_template_part(‘infobar’);
            weaverii_inject_area(‘precontent’); ?>
            <div id=”container”>
    <?php        weaverii_get_sidebar_top(‘page’); ?>

                <div id=”content” role=”main”>

                    <?php weaverii_post_count_clear(); the_post(); ?>

                    <?php get_template_part( ‘content’, ‘page’ ); ?>

                    <?php comments_template( ”, true ); ?>

                </div><!– #content –>
    <?php        weaverii_get_sidebar_bottom(‘page’); ?>
            </div><!– #container –>
            </div><!– #container_wrap –>

    <?php    weaverii_get_sidebar_right(‘page’);
        weaverii_get_footer(‘page’);
    ?>

  • giovanni

    ciao a tutti
    grazie per tutti i post… io non riesco a risolvere il problema della Home page. tutti i post che pubblico in remoto da cellulare, vanno nella pagina dedicata, dopo aver inserito correttamente la string qui sopra, però non riesco a gfarli scomparire dalla homepage…ho riletto e riletto i vostri commenti, provato e riprovato, ma niente… chi mi aiuta? posto qui  l index del sito ( dove non ho get header).
    Grazie mille in anticipo.
    Praticamente o inserito la string in alto.
     
    <?php
    if (is_home()) {
    query_posts(“cat=-230″);
    }
    ?>
    <?php
    function vtm_content()
    {
     global $posts_per_page;
        $wpq = new WP_Query();
        //echo “wp_query = $posts_per_page”;
       
        $options = & ClearLineOptions::getOptions();
        $shortname = & ClearLineOptions::cfg(‘shortname’);
        //print_r($options);
        $displayed_posts = 0;
        $page = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
        $displayed_ids = array();

        if (is_home() && $page == 1)
        {
            $sticky = get_option(‘sticky_posts’);
            if ($sticky && is_array($sticky))
            {
                echo ‘<div class=”sidebar”>';
                if ( function_exists(‘dynamic_sidebar’)) dynamic_sidebar(‘Before Sticky Post’);
                echo ‘</div>';
               
                rsort( $sticky );
                $sticky = array_slice( $sticky, 0, 3);
                $wpq->query( array( ‘post__in’ => $sticky, ‘ignore_sticky_posts’ => 1 ) );
                $res= display_regular_posts($wpq);
                $displayed_posts += $res[‘count’];
                $displayed_ids = $displayed_ids + $res[‘ids’];
            }
           
            if ($options[$shortname.’_show_latest_post_before_columns’]==’yes’)
            {
                echo ‘<div class=”sidebar”>';
                if ( function_exists(‘dynamic_sidebar’)) dynamic_sidebar(‘Before Latest Post’);
                echo ‘</div>';
               
                $wpq->query(“paged=$page&posts_per_page=1&ignore_sticky_posts=1″);
                $res= display_regular_posts($wpq, $displayed_ids);
                $displayed_posts += $res[‘count’];
                $displayed_ids = $displayed_ids + $res[‘ids’];
            }
           
            $cat = $options[$shortname.’_show_category_in_column’];
           

            if ($cat <= 0) $cat = null;
            if ($options[$shortname.’_post_list_column_count’] > 1)
            {
                if ($displayed_ids)
                {
                    echo ‘<hr/>';
                }
                echo ‘<br/>';
                echo ‘<div class=”sidebar”>';
                if ( function_exists(‘dynamic_sidebar’)) dynamic_sidebar(‘Before Columns on Index Page’);
                echo ‘</div>';

                $show_posts = $options[$shortname.’_post_list_column_count’] * $options[$shortname.’_post_list_column_rows’];
                $wpq->query(array(‘post__not_in’ => $displayed_ids,’cat’=>$cat,’posts_per_page’=>$show_posts));
                $res = display_column_posts($wpq, $displayed_ids);
                $displayed_posts += $res[‘count’];
                if ($res[‘count’] < $show_posts) echo ‘<div class=”clear”></div>';
                $displayed_ids = $displayed_ids + $res[‘ids’];
            }
            $show_posts = $posts_per_page – $displayed_posts;
            display_regular_posts(null,$displayed_ids);
        }
        else
            display_regular_posts();
     ?>
        <div class=”clear”></div>
        <?php if(function_exists(‘wp_paginate’))
            {
                wp_paginate();
            }
            elseif(function_exists(‘wp_pagenavi’))
            {
                wp_pagenavi();
            }
            elseif (function_exists(‘postbar’)) //PAGEBAR
            {
                postbar();
            }
            else
            {
                posts_nav_link(‘ � ‘, __(‘� Previous Page’), __(‘Next Page �’));
            }

    } //end of vtm_conent()
    get_template_part( ‘layouts/’. ClearLineOptions::getLayoutCSS() );
    //include (TEMPLATEPATH . ‘/layouts/’. ClearLineOptions::getLayoutCSS().’.php’);
     
     

  • http://www.gastronomiamiraggio.it giovanni

    risolto tutto ora esistono plugin per  escludere categorie :-))))9 basta cercare con cerca plugin la parola exclude. ciaoa tutti

  • Anonimo

    Grazie mille utilissimo!..e soprattutto molto chiaro nella spiegazione, complimenti.
    Piercarlo

  • http://thenaturalegend.altervista.org ivan

    ok è perfetto ma come faccio a metterne piu di uno???
    la seconda categoria e il secondo template dove li devo mettere??
    è urgente. Grazie

  • Sylia

    Ribadisco un commento ignorato da molti:
    Per il problema dell’impaginazione errata, cioè quando cerchi di cambiare pagina “inutilmente”, perché viene sempre riproposta la visualizzazione dei post iniziali, controllare e seguire passo-passo le indicazioni di questo sito web http://scribu.net/wordpress/wp-pagenavi/right-way-to-use-query_posts.html

    Io sono riuscita a risolvere il problema usando:
    <?php query_posts( array( ‘cat’ => 3, ‘paged’ => get_query_var(‘paged’) ) ); ?> 
    utilizzando una copia di page.php e non index.php

    Grazie ancora a chi lo ha postato inizialmente (non mi ricordo il nome)

  • Sylia

    Per eventualmente escludere delle categorie dai post visualizzati, basta usare questo codice:

    <?php query_posts( array( ‘cat’ => (‘-4, -3′), ‘paged’ => get_query_var(‘paged’) ) ); ?>

    Ovviamente per chi – come a me – funziona questa soluzione.
    Anche in questo caso, usando page.php o un derivato, l’impaginazione funzionerà correttamente.

    Dimenticavo: io sto usando WordPress 3.4 e un template totalmente personalizzato.

  • massimo

    Ciao a tutti….
    ho seguito le istruzioni e sono riuscito correttamente a creare articoli associandoli ad una specifica categoria, che filtrati dalla home vanno direttamente nelle pagine che ho creato. A queste ultime ho associato un template personalizzato, con lID categoria…ma, quando apro l’articolo dalla pagina, nonostante lo stesso è il page.php riadattato, non compaiono ne i pulsanti per la condivisione su FB o altri social, ne la possibilità d’inserire commenti…la cosa strana è che se clicco sul link all’articolo dalla sezione “articoli recenti” invece tutto questo appare. Ho pensato di dover adattare il file “single.php” che è quello degli articoli del tema che uso…ma inserendo sia il nome del template che la query per l’indicizzazione di quella pagina con gli articoli della categoria X non funziona, il PHP restituisce un errore Parse error: syntax error, unexpected T_NS_SEPARATOR, expecting e altro…

    magari avete risolto ed io non sono stato in grado di capire come….
    qualcuno di buona volontà vuole aiutarmi? :)

    grazie…

    massimo 

  • massimo

    dimenticavo:
    uso la WP 3.4.1

    codice inserito in index.php:

    <?php
    if ( is_home() ) {
    query_posts( ‘cat=-10,-11,-12,-13′ );
    }
    ?>

    codice file del tempale (la categoria è quella corretta): 

    <?php
    /*
    Template Name: al mare_template
    */
    ?>
     
    <?php get_header(); ?>
     
    <?php
    $query= ‘cat=10&orderby=date&order=DESC';
    query_posts($query);
    ?>
     
    <div id=”main”>
     
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
     
    <?php if (function_exists(‘dimox_breadcrumbs’)) dimox_breadcrumbs();?>
     
    <h2 class=”entrytitle”><?php the_title(); ?></h2>
     
    <div class=”entry”>
     
    <?php the_content(‘<p class=”serif”>Read the rest of this page &raquo;</p>’); ?>
    <?php edit_post_link(‘Edit this page’,”,”); ?>
    <br />
     
    <?php wp_link_pages(array(‘before’ => ‘<p><strong>Pages:</strong> ‘, ‘after’ => ‘</p>’, ‘next_or_number’ => ‘number’)); ?>
    </div>
     
    <div class=”clear”></div>
    <?php endwhile; endif; ?>
     
        <div id=”commentsection”>
    <?php comments_template(); ?>
        </div>
     
    </div><!–end main–>
     
    <?php 
    get_sidebar();
    get_footer(); 
    ?>

     

  • http://www.elitaeva.name elita

    ciao, grazie a LukePet per questo utilissimo articolo che ho messo in pratica,ho trovato però due problemi:
    – i link della sidebar rimangono in fondo, affiancati al primo articolo;
    – non so come pubblicare un articolo nella pagina iniziale (index)
    c’è qualcuno che mi può aiutare?
    grazie in anticipo
    elita

  • http://tho15nq7ca.terapad.com bache d hivernage pour piscine hors sol

    After looking over a handful of the blog posts on your web
    page, I honestly like your technique of writing a blog.
    I saved as a favorite it to my bookmark website list and will be checking back in the near future.
    Please visit my website too and tell me what you think.

  • BOBO

    Grande, grazie.. Ci sono riuscito, anche se ho perso alcune opzioni di formattazione della barra laterale…. Devo imparare un po’ di sintassi…. Ora vorrei poter inserire solo il riassunto degli articoli delle categorie magari con thumb…. Grazie cmq

  • http://www.offertevacanzemondo.it/ caterina

    Ciao LukePet;
    avrei bisogno di un chiarimento: come spieghi tu la procedura per ogni pagina di cui ho bisogno devo duplicare il file page.php con un nuovo nome e poi seguire la procedura. La mia domanda è questa: io ho già creato le pagine, il menù e le categorie, seguendo la tua indicazione devo cancellare la pagine create e ricrearle duplicando file page.php? altrimenti avrei dei doppioni?
    Boh…mi sono piantata in questo problema e non riesco a uscirne…ho tutto preprarto ma non riesco a collegare gli articoli alle pagine che ho creato!

  • http://www.loacity.it Sergio

    Ciao LukePet,
    il teme del sito che utilizzo non prevede l’inserimento dei commenti nelle pagine, sino a qui tutto bene, le pagine sino ad ora create sono statiche, ma se dovessi inserire in una sola pagina la possibilità di inserire commenti come faccio?
    ci ho provato ho inserito dopo
    endif; ?>
    la stringa

    sino a qui ok, ho disabilitato nelle altre pagine la possibilità di inserire commenti e sino a qui bene
    il problema che se lascio un commento non lo “scrive” sulla pagina, dimentico qualche pezzo?

    Grazie per l’aiuto che potrai darmi
    S

  • http://www.lericettedinettuno.it/ pepolo

    ciao
    anche io ho inserito tutto il codice correttamente ma , mi compare nella home page SOLO un post per intero della categoria identificata.
    Ho anche controllato nel database il numero ID ed e corretto.

    come mai ?

  • http://www.claudiosilvestri.it Claudio

    scusate la domanda stupida, ma il file page_template01.php deve essere rinominato page.php e rimesso dove stava, giusto?

  • roberto

    Premessa non sono una cima in campo di linguaggio di programmazione, ho applicato la procedura, funziona , ma con un fastidioso problema che non riesco a capire da dove provienga, in pratica se ho 15 articoli e la pagine ne può contenere 10, i restanti 5 spariscono e quando vado a cliccare “Articoli meno recenti” mi ripropone gli stessi 10.
    Avete idea di cosa sia?

    incollo l’edit della pagina

  • giorgio

    ciao a tutti, una informazione.
    ho una pagina nella quale ho un loop che mi visualizza N articoli; sopra questi devo visualizzarne uno della stessa categoria, questo dovrà essere sempre primo nella pagina (ossia sempre in alto).
    In questo caso ho fatto un altro loop sopra a quello degli N articoli dal quale pesco l’id dell’unico post che devo lasciare per primo.
    Ho avuto due risultati:
    1) mi duplica i post
    2) se inserisco un nuovo articolo questo viene duplicato (punto 1) e spostato sopra tutti.
    questo è il mio script:

    post_title;
    ?>
    CONTENUTO DEL POST

  • BERTOLOTTI Paolo Francesco

    Un po’ di problemi… Sto facendo un sito per un concorso di poesie. Siccome prevedo che ci saranno future edizioni vorrei mostrare nella pagina i post che abbiano sia categoria poesia che categoria corrente. Come posso fare???

    GRAZIE

  • http://%URL% hand written comments

    Heya i am for the first time here. I found this board and I find It really
    useful & it helped me out a lot. I hope to give something back and
    aid others like you helped me.

  • matteo

    ma dove trovo nel database il file wp-terms in cui cercare il numero ID corretto?
    uso altervista come database ma non c’è nessun file wp-terms, forse usano un altro nome…
    mi potete aiutare?

  • http://respawn.it/sito/ Marco

    Grazie mille! Era ciò che cercavo! Consiglio la guida :)

  • http://www.youtube.com/watch?v=GJ9TRl2Dby4 Guns Of Icarus Online (Video Game)

    Pretty! This has been an extremely wonderful post. Thank you for providing this info.

  • gio1247

    salve
    vorrei tanto inserire questi passi ma temo di non essere in grado. Ma ci provo chiedendovi di seguirmi passo passo.

    “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…”
    Prima domanda: dove trovo esattamente wp-terms ? Non riesco a troverla