• User

    [Risolto] Guide Recenti su barra laterale

    Ciao a tutti, sono nuovo di qui, vorrei fare intando i complimenti al webmaster di questo bel forum e al sito 🙂 veramente fatto bene 😄

    Comunque ho questo problema, nel tema che utilizzo nel mio sito nella barra laterale c'è una sezione di Guide Recenti, dove vengono messi tutti gli articoli recenti, il problema è che io vorrei far vedere in quella sezione solo gli articoli di una determinata sezione e non di tutti.

    Questo è il codice

    [HTML]<div>
    <?php
    $today = current_time('mysql', 1);
    if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 10")):
    ?>
    <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
    <ul class="splittedlists">
    <?php foreach ($recentposts as $post) { if ($post->post_title == '') $post->post_title = sprintf(__('Post #%s'), $post->ID);
    echo "<li><a href='".get_permalink($post->ID)."'>"; the_title(); echo '</a></li>'; }?>
    </ul>
    <?php endif; ?>
    </div>[/HTML]

    Grazie a tutti


  • Super User

    Ciao manu90 e benvenuto sul ForumGt!!

    Quello che vuoi ottenere se non ho capito male è filtrare i recent posts, mostrando solo quelli di una determinata categoria, giusto?

    Se si non devi far altro che modificare questa riga in:

    
               if ($post->post_title == '' AND in_category(n° della tua categoria)) 
    
    

    sostituisci "n° della tua categoria" con il numero della categoria che vuoi mostrare, per vedere a che numero è associata la categoria devi andare nel menu admin sotto la voce gestione e poi categorie.


  • User

    Grazie per avermi risposto, ho fatto come mi hai detto ma non mi visualizza solo gli articoli della categoria che voglio ma di tutte.:x

    Ho scritto così nel codice

    [HTML]$today = current_time('mysql', 1);
    if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 10")):
    ?>
    <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
    <ul class="splittedlists">
    <?php foreach ($recentposts as $post) { if ($post->post_title == '' AND in_category3) $post->post_title = sprintf(__('Post #%s'), $post->ID);
    echo "<li><a href='".get_permalink($post->ID)."'>"; the_title(); echo '</a></li>'; }?>
    </ul>[/HTML]

    spero che mi sappia aiutare


  • Super User

    prova così

    
    <div>
    <?php
                $today = current_time('mysql', 1);
                if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'  AND post_date_gmt < '$today' ORDER BY post_date DESC LIMIT 10")):
            ?>
        <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
                <ul class="splittedlists">
                    <?php foreach ($recentposts as $post) { if ($post->post_title == '' AND in_category('3')) $post->post_title = sprintf(__('Post #%s'), $post->ID);
                echo "<li><a href='".get_permalink($post->ID)."'>"; the_title(); echo '</a></li>'; }?> 
                           </ul>
    <?php endif; ?>
            </div>
    

  • User

    niente...non va bene neanche così.
    Hai per caso msn? così possiamo vedere meglio..

    comunque grazie


  • Super User

    allora mi sa che il plugin non utilizza le funzioni base di wp, sa quindi da dover riscrivere un bel po' il plugin per ottenere quello che vuoi.

    praticamente il problema è che per ogni post non è salvato nella stessa tabella dove è contenuto il post quali siano le sue categorie, ma su una seconda tabella... 😞

    potresti provare una cosa del genere però

    
    <div>
    <?php
                $today = current_time('mysql', 1);
                if ( $ids = $wpdb->get_results("SELECT post_id FROM $wpdb->post2cat WHERE category_id ='3' ORDER BY post_id DESC LIMIT 10"))
                {
                	foreach($ids as $id)
                	{
                		if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'  AND post_date_gmt < '$today' AND ID='$id->post_id' ORDER BY post_date DESC LIMIT 10")):
            ?>
        <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
                <ul class="splittedlists">
                    <?php foreach ($recentposts as $post) { if ($post->post_title == '' AND in_category('3')) $post->post_title = sprintf(__('Post #%s'), $post->ID);
                echo "<li><a href='".get_permalink($post->ID)."'>"; the_title(); echo '</a></li>'; }?> 
                           </ul>
    <?php endif; 
                	}
                }?>
            </div>
    
    

  • User

    Così mi scompare il recent post dalla barra laterale, non c'è nessun modo per fare quello che voglio io? Non esiste dei plugin? sarebbe strano che non si riusciste a fare questo


  • Super User

    il problema che qui ci vorrebbe il plugin del plugin 😞

    ho provato a modificare il codice sopra, prova a dirmi se funziona o meno.


  • User

    Vai nel mio sito pccyber.altervista.org e vedi come si presenta ora...comunque mi fa apparire prima le guide + vekki e andando sotto mi fa vedere le guide più recenti, dovrebbe essere il contrario.


  • Super User

    ok forse ora ci siamo, mi ero dimenticato di ordinarle in ordine descrescente 😉


  • User

    Mi potresti dire come impostarlo bene? grazie di tutto


  • Super User

    se utilizzi il codice del post sopra, che ho già modificato, dovresti essere a posto.


  • User

    L'ho utilizzato il codice ma mi visualizza ogni articolo su una sezione, per capire bene basta che vedi il mio sito http://pccyber.altervista.org/


  • User

    sai aiutarmi?


  • Super User

    non ho ben capito il problema a dire il vero... cosa intendi per "mi visualizza ogni articolo su una sezione"?

    il tuo scopo non era mostrare solo gli articoli della categoria n° 3 ?


  • User

    Si però così mi visualizza i recent post

    imageimage

    Io vorrei che ci fosse un unica sezione di GuideRecenti e sotto gli articoli.


  • Super User

    ah capito! 🙂

    allora fai così

    leva questa riga dal codice sopra:

    <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
    

    e mettila prima di:

    <?php

    e dovrebbe essere a posto 😉


  • User

    Grandissimo, ora funziona alla perfezione

    Posto il codice completo corretto, forse a qualche utente gli servirà

    [HTML]<div>
    <h2><?php _e("Guide"); ?><span><?php _e("Recenti"); ?></span></h2>
    <?php
    $today = current_time('mysql', 1);
    if ( $ids = $wpdb->get_results("SELECT post_id FROM $wpdb->post2cat WHERE category_id ='3' ORDER BY post_id DESC LIMIT 10"))
    {
    foreach($ids as $id)
    {
    if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt < '$today' AND ID='$id->post_id' ORDER BY post_date DESC LIMIT 10")):
    ?>

            <ul class="splittedlists">
                <?php foreach ($recentposts as $post) { if ($post->post_title == '' AND in_category('3')) $post->post_title = sprintf(__('Post #%s'), $post->ID);
            echo "<li><a href='".get_permalink($post->ID)."'>"; the_title(); echo '</a></li>'; }?> 
                       </ul>
    

    <?php endif;
    }
    }?>
    </div>[/HTML]

    Grazie ancora 😉


  • Super User

    setto il topic come risolto allora 🙂