- Home
- Categorie
- Coding e Sistemistica
- WordPress
- [Risolto] Guide Recenti su barra laterale
-
[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
-
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.
-
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
-
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>
-
niente...non va bene neanche così.
Hai per caso msn? così possiamo vedere meglio..comunque grazie
-
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>
-
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
-
il problema che qui ci vorrebbe il plugin del plugin
ho provato a modificare il codice sopra, prova a dirmi se funziona o meno.
-
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.
-
ok forse ora ci siamo, mi ero dimenticato di ordinarle in ordine descrescente
-
Mi potresti dire come impostarlo bene? grazie di tutto
-
se utilizzi il codice del post sopra, che ho già modificato, dovresti essere a posto.
-
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/
-
sai aiutarmi?
-
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 ?
-
Si però così mi visualizza i recent post
Io vorrei che ci fosse un unica sezione di GuideRecenti e sotto gli articoli.
-
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
-
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
-
setto il topic come risolto allora