• User

    Nella index avere un featured post e sotto tutti gli altri

    Ciao a tutti,
    sto costruendo il mio tema personale.

    Descrizione:
    Nella index il primo articolo viene visualizzato in modo diverso da tutti gli altri. Per fare ciò ho creato una categoria apposita (feature).
    Ho creato poi due div. Il primo è per il post principale, l'altro per tutti gli altri post delle altre categorie.
    Ecco il codice:

    Feature post
    [PHP]<div id="feature">
    <?php $my_query = new WP_Query('category_name=Feature&showposts=1');
    while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID; ?>
    <div id="feature-img">
    <?php the_post_thumbnail( array(600,277) ); ?>
    <div id="feature-title">
    <a href="<?php the_permalink() ?>" title="Continua a leggere ..."><?php the_title(); ?></a>
    </div>
    <div id="feature-autore">
    scritto da <i><?php the_author_link(); ?></i>
    </div>
    </div>
    <?php endwhile; ?>
    </div>
    [/PHP]

    Altri post
    [PHP]<?php query_posts("cat=-feature"); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class="box">
    <div class="postBox">
    <div class="postThumb">
    <?php the_post_thumbnail(); ?>
    </div>
    <div class="postDati">
    <div class="title">
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    </div>
    <div class="textPreview"><?php the_excerpt(); ?></div>
    <div class="read">
    <div class="read-img">
    <img src="<?php bloginfo('template_directory'); ?>/images/ico_read.png"></div>
    <div class="read-text">
    <a href="<?php the_permalink() ?>">Continua a leggere ... </a>
    </div>
    </div>
    </div>
    <div class="share"><img src="<?php bloginfo('template_directory'); ?>/images/social.png"></div>
    </div>
    <div id="div"><img src="<?php bloginfo('template_directory'); ?>/images/div.png"></div>
    </div>
    <?php endwhile; ?>
    [/PHP]

    Problema:
    Più o meno funziona come vorrei. Nella parte alta viene visualizzato il post principale con il layout scelto e sotto tutti gli altri post.
    Il problema è che

    1. il post principale (quello in categoria feature per intenderci) viene duplicato e visualizzato anche con gli altri in basso nonostante io abbia dato il comando di non visualizzare la categoria feature;
    2. se inserico nuovi articoli, questi vengono visualizzati dopo il post principale presente nell'elenco in basso. Per capirci meglio: inserisco due articoli normali, poi inserisco un articolo feature e poi altri due articoli normali, questi ultimi vengono visualizzati dopo i primi tre e non all'inizio com'è logico che sia.

    Sapete aiutarmi con questo codice o suggerirmi qualche altra soluzione?
    Grazie in anticipo


  • User

    Ok, ho risolto da solo il problema.
    Se qualcuno fosse interessato ecco come ho fatto.

    Nella parte di codice dedicato all'articolo principale ho inserito le seguenti righe:

    [PHP]
    <?php $my_query = new WP_Query('cat=6&showposts=1');
    while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID; ?>

    ...

    <?php endwhile; ?>
    [/PHP]

    Questo mi ha persomesso di selezionare solo 1 articolo della categoria prescelta che ha come ID 6

    Per il resto degli articoli il codice è il seguente:

    [PHP]
    <?php query_posts($query_string . '&cat=-12,-6,-8'); ?>
    <?php query_posts($query_string . '&cat=3,4&order=DESC' ); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    ...

    <?php endwhile; ?>

    <?php else : ?>

    <p>Sorry, but you are looking for something that isn't here.</p>

    <?php endif; ?>
    [/PHP]

    Dove dico di non visualizzare gli articoli appartenenti alla categoria prima citata più altre categorie da me selezionate e dove dico che gli articoli delle altre categorie che voglio visualizzare (la 3 e la 4) devono apparire in ordine dal più recente al più vecchio.

    Se i moderatori vogliono possono segnare il problema come risolto.


  • Moderatore

    Ciao alecolombo,
    grazie per aver condiviso con noi la tua soluzione, potrebbe risultare utile a qualche altro utente con il tuo stesso problema. 🙂