loop multipli wordpress

Discussioni inerenti la piattaforma di blogging (e non solo) più utilizzata nel mondo

Moderatori: antoscarface, maurizio, VictorD, nando

Regole del forum
Per scrivere del codice all'interno di ogni post, utilizzare il tag: [syntax=il_linguaggio]codice[/syntax] sostituendo "il_linguaggio" con il linguaggio del codice che dovete inserire, ad esempio: html, css, javascript, php, asp, ecc...

loop multipli wordpress

Messaggioda nuala » martedì 6 luglio 2010, 17:01

Ciato a tutti,
sto seguedo pasos per passo la guida di wordpress che state pubblicando (e forse sono andata un po oltre presa dall'entusiasmo :p ), ma mi sfugge una questione: come si fa ad inserire uno specifico post in uno specifico div del mio template?
Ed in più mi piacerebbe inserire tre loop diversi in hp... ad esmepio in un box vorrei vedere i post della categoria X, in un altro box i post della categoria Y e nell'altro ancora quelli della categoria Z.
Immagino sia possibile, ma conoscendo molto molto poco il php avrei bisogno di spiegazioni in questo senso.

Grazie e continuate così!! ;)
nuala

Avatar utente
 
Messaggi: 51
Iscritto il: lunedì 22 febbraio 2010, 16:31

Re: loop multipli wordpress

Messaggioda JustB » mercoledì 7 luglio 2010, 7:54

Ciao nuala,
non ho ben capito cosa intendi per "inserire uno specifico post in uno specifico div": potresti fare un esempio?

Per quanto riguarda la questione dei loop multipli, puoi utilizzare la funzione di Wordpress "query_posts". Tale funzione ti permette di modificare la query dei post permettendoti di controllare quali mostrare e quali no.
Un modello per utilizzare questa funzione potrebbe essere il seguente:
Sintassi: php [ Scarica ] [ Nascondi ]
  1. //Modifica il loop per mostrare solamente 6 post
  2. global $query_string;
  3. query_posts($query_string . '&showposts=6');
  4. //Questo è il loop normale
  5. if (have_posts()) : while (have_posts()) : the_post();
  6. // Qui il modello per mostrare i tuoi post
  7. endwhile; else:
  8. // Qui l'html da mostrare in caso non ci siano post
  9. endif;
  10. // Riporta la query allo stato iniziale
  11. wp_reset_query();
  12. ?>
  13.  

Come vedi ho passato come parametro alla funzione query_posts la variabile $query_string che contiene la query di default di Wordpress, a cui ho aggiunto la condizione di mostrare solo 6 post. Così in questo loop saranno sempre presenti solo gli ultimi 6 post, in ordine cronologico inverso. Altri parametri possibili sono descritti nella pagina del Codex ;)
Ovviamente questo è solo un esempio di base, ma dovrebbe andare bene per gli usi più comuni.
Spero ti sia utile.
Saluti,
Just
JustB

Avatar utente
 
Messaggi: 127
Iscritto il: martedì 26 gennaio 2010, 13:51
Località: Sant'Antimo [Napoli]

Re: loop multipli wordpress

Messaggioda nando » mercoledì 7 luglio 2010, 12:24

Quanto ha detto just è corretto, tuttavia la funzione query_posts serve a modificare il loop principale di WordPress. Nel caso si debbano creare più loop secondari all'interno della pagina, l'utilizzo di questa funzione potrebbe portare a risultati inaspettati come descritto in questa nota.
Conviene quindi utilizzare la funzione get_posts - per molti aspetti simile alla precedente - che risulta più idonea per la creazione di multi loop secondari.

Nella pagina della funzione trovi proprio un esempio che ti permette di mostrare "x" articoli appartenenti alla categoria "y":

Sintassi: php [ Scarica ] [ Nascondi ]
  1. <ul>
  2.  <?php
  3.  global $post;
  4.  $myposts = get_posts('numberposts=5&offset=1&category=1');
  5.  foreach($myposts as $post) :
  6.    setup_postdata($post);
  7.  ?>
  8.     <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
  9.  <?php endforeach; ?>
  10.  </ul>
  11.  
  12.  
nando

Amministratore

Avatar utente
 
Messaggi: 575
Iscritto il: giovedì 8 ottobre 2009, 1:33
Località: Italy

Re: loop multipli wordpress

Messaggioda nuala » lunedì 12 luglio 2010, 16:27

Ciao ragazzi,
scusat eil ritardo nella risposta e grazie mille invece per la vostra disponibilità!
Purtroppo non sono riuscita a risolvere il problema, ma probabilmente perchè ho spiegato male ciò che vorrei fare.
Quindi allego un'immagine cosi da poter essere più chiara.

Grazie mille ancora...e spero di riuscire ad imparare ad usare bene questo wp...perchè per ora... mi sta facendo un po innervosire!! :p

ciau,
nu

http://www.nualapatriarca.com/esempio.jpg
nuala

Avatar utente
 
Messaggi: 51
Iscritto il: lunedì 22 febbraio 2010, 16:31

Re: loop multipli wordpress

Messaggioda nando » lunedì 12 luglio 2010, 18:53

Ciao nuala, ti eri spiegata benissimo, infatti quello che abbiamo descritto io e just permette di ottenere esattamente quello che ti serve =)
nando

Amministratore

Avatar utente
 
Messaggi: 575
Iscritto il: giovedì 8 ottobre 2009, 1:33
Località: Italy

Re: loop multipli wordpress

Messaggioda nuala » lunedì 12 luglio 2010, 18:55

perfetto! il che significa che sono babba! :p
nuala

Avatar utente
 
Messaggi: 51
Iscritto il: lunedì 22 febbraio 2010, 16:31

Re: loop multipli wordpress

Messaggioda benna84 » lunedì 2 agosto 2010, 11:05

Ciao a tutti,
sono anche io "in palla" per un problema simile a quello indicato qui sopra. Vi spiego nel dettaglio, sperando che possiate aiutarmi in qualche modo...

Devo fare un sito tipo catalogo prodotti - no-ecommerce, e il cliente ha espressamente richiesto di utilizzare WP. Ottimo.
Visto che vuole anche una parte di news/blog, abbiamo deciso di strutturare in questo modo il tutto: gli articoli sono le news, mentre le pagine rappresenteranno il contenuto "corporate" ed il catalogo prodotti del sito. Ho creato una gerarchia di pagine che mi semplifica il lavoro.
E fino a qui, tutto bene. Almeno a livello logico... sbaglio?

Il problema subentra quando in Homepage decido di mostrare gli ultimi articoli inseriti in una sidebar, e al centro della pagina, tutte le linee di prodotto (quindi pagine figlie di Collezioni). Che cosa succede?
Il loop mi genera dei doppioni - il primo e l'ultimo risultato vengono inspiegabilmente duplicati!
Le ho provate tutte, dal "$do_not_duplicate", fino al degub a mano, stampandomi gli ID delle pagine generate dal loop. Risultato? Gli elementi duplicati non presentano ID!!!!!!!! O perlomeno non lo stampa.

Come posso fare?
Vi posto un po' di codice. Spero possiate aiutarmi.

Grazie ragazzi


Sintassi: php [ Scarica ] [ Nascondi ]
  1. <div id="slider-wrapper">
  2.         <div id="slider">
  3.  
  4.                 <ul>   
  5.                         <?php
  6.            
  7.                 //loop per trovare le collezioni
  8.                 $args1 = array(
  9.                     'post_type'=>'page', //tipo pagine
  10.                     'numberposts' => -1, //non limitato
  11.                     'post_status' => 'publish',
  12.                     'post_parent' => 36,
  13.                     'order' => ASC,
  14.                     'orderby' => menu_order
  15.                 );
  16.                                
  17.                                 $ids = array();                        
  18.                 $collezioni = new WP_Query($args1);
  19.                
  20.                 //se collezioni ha contenuti e per tutti i contenuti di collezioni
  21.                 if( $collezioni->have_posts() ) {
  22.                     while ($collezioni->have_posts()) : $collezioni->the_post();
  23.                    
  24.                     //loop per trovare le linee attive di prodotto nelle collezioni
  25.                     $args2 = array(
  26.                         'post_type'=>'page', //tipo pagine
  27.                         'numberposts' => -1, //non limitato
  28.                         'post_status' => 'publish',
  29.                         'post_parent' => $post->ID,
  30.                         'order' => ASC,
  31.                         'orderby' => menu_order
  32.                     );
  33.                
  34.                     $linee = null;  //pulisco dai precedenti risultati
  35.                     $linee = new WP_Query($args2);
  36.                    
  37.                     //se linee ha contenuti e per tutti i contenuti di linee
  38.                     if($linee->have_posts()) {
  39.                                                 while ($linee->have_posts()) : $linee->the_post();
  40.                                                        
  41.                                                         $pippo = $post->ID;
  42.                                                        
  43.                                                         if(in_array($pippo, $ids)) {    //se non è presente nell'array procedo
  44.                                                         }else{
  45.                                                         $thumbnail = get_post_meta($post->ID, 'Thumbnail', true);
  46.                                         ?>
  47.                      
  48.                         <li>
  49.                             <div class="infobox">
  50.                                
  51.                                 <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
  52.                                 <?php if($thumbnail !== '') { ?>
  53.                                     <img class="portfolio-image" src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php echo $thumbnail; ?>&amp;h=400&amp;w=300&amp;zc=1" alt="<?php the_title(); ?>" />
  54.                                 <?php } else {?>
  55.                                     <img class="post-image" src="<?php bloginfo('template_directory'); ?>/images/no-image.jpg" alt="<?php the_title(); ?>" />
  56.                                 <?php } ?>
  57.                                 </a>
  58.                                                        
  59.                                 <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
  60.                                         <span class="more">
  61.                                                                                 <h2><?php the_title2();/*('', '..', true, '15');*/ ?></h2>
  62.                                         <p>
  63.                                                                                         <?php if (function_exists('the_content_limit')) {
  64.                                                 the_content_limit(145, "");
  65.                                                                                                 } else {
  66.                                                 echo 'You have not uploaded and acivated the limit posts plugin. This is required.';
  67.                                             } ?>
  68.                                         </p>
  69.                                     </span>
  70.                                 </a>
  71.                             </div>
  72.                         </li>
  73.                    
  74.                    
  75.                         <?php
  76.                                                 $ids[] = $post->ID; //aggiorno l'array con dentro gli ID dei post inseriti
  77.                                                 }
  78.                                                 endwhile;
  79.                                                 wp_reset_query();  // Restore global post data stomped by the_post().
  80.                     }
  81.                     endwhile;
  82.                     wp_reset_query();  // Restore global post data stomped by the_post().
  83.                 }
  84.                 ?>
  85.                         </ul>
  86.                
  87.         </div>
  88. </div>
  89.  
benna84

Avatar utente
 
Messaggi: 5
Iscritto il: lunedì 2 agosto 2010, 10:47
Località: Modena

Re: loop multipli wordpress

Messaggioda nando » martedì 3 agosto 2010, 4:12

Perchè non utilizzare delle categorie per gestire il catalogo piuttosto che delle pagine?

Le news potrebbero essere una categoria di articoli, e la stessa cosa dicasi per il catalogo prodotti. Dal punto di vista strutturale/organizativo dovrebbe essere più corretto.

Per quanto riguarda il tuo errore non ho proprio capito di cosa si tratta, potresti spiegari in modo più dettagliato o farci vedere un link della pagina se possibile?
nando

Amministratore

Avatar utente
 
Messaggi: 575
Iscritto il: giovedì 8 ottobre 2009, 1:33
Località: Italy

Re: loop multipli wordpress

Messaggioda benna84 » giovedì 5 agosto 2010, 10:36

nando ha scritto:Perchè non utilizzare delle categorie per gestire il catalogo piuttosto che delle pagine?

Le news potrebbero essere una categoria di articoli, e la stessa cosa dicasi per il catalogo prodotti. Dal punto di vista strutturale/organizativo dovrebbe essere più corretto.

Per quanto riguarda il tuo errore non ho proprio capito di cosa si tratta, potresti spiegari in modo più dettagliato o farci vedere un link della pagina se possibile?


Ciao Nando,
intanto grazie per la pronta risposta.

Ho bisogno di una gerarchia di pagine perché ho del contenuto da inserire - tipo immagine + testo. Forse potevo farlo ugualmente con le categorie?
Il mio errore è su un loop - ho degli item duplicati inspiegabilmente. Come vedrai, ci sono 2 linee di prodotti duplicate "I love T-shirt" e "Allure" sono sia all'inizio che alla fine. Il codice dinamico è quello sopra. Se c'è qualcosa che posso riportarti che può esserti d'aiuto dimmi che provvedo.

Questo è l'URL del progetto in test:
http://tiny.cc/19hx6

Grazie
benna84

Avatar utente
 
Messaggi: 5
Iscritto il: lunedì 2 agosto 2010, 10:47
Località: Modena

Re: loop multipli wordpress

Messaggioda benna84 » mercoledì 8 settembre 2010, 10:31

benna84 ha scritto:
nando ha scritto:Perchè non utilizzare delle categorie per gestire il catalogo piuttosto che delle pagine?

Le news potrebbero essere una categoria di articoli, e la stessa cosa dicasi per il catalogo prodotti. Dal punto di vista strutturale/organizativo dovrebbe essere più corretto.

Per quanto riguarda il tuo errore non ho proprio capito di cosa si tratta, potresti spiegari in modo più dettagliato o farci vedere un link della pagina se possibile?


Ciao Nando,
intanto grazie per la pronta risposta.

Ho bisogno di una gerarchia di pagine perché ho del contenuto da inserire - tipo immagine + testo. Forse potevo farlo ugualmente con le categorie?
Il mio errore è su un loop - ho degli item duplicati inspiegabilmente. Come vedrai, ci sono 2 linee di prodotti duplicate "I love T-shirt" e "Allure" sono sia all'inizio che alla fine. Il codice dinamico è quello sopra. Se c'è qualcosa che posso riportarti che può esserti d'aiuto dimmi che provvedo.

Questo è l'URL del progetto in test:
http://tiny.cc/19hx6

Grazie


Ciao, mi spiace disturbarvi ancora, ma non ho più ricevuto risposta al quesito sopra.
C'è qualche soluzione a questo problema? Posso postare altro per poter essere più chiaro?
Mi servirebbe davvero una mano perché non so più da che parte prendere...

Grazie mille
benna84

Avatar utente
 
Messaggi: 5
Iscritto il: lunedì 2 agosto 2010, 10:47
Località: Modena

Prossimo

Torna a Wordpress