- Home
- Categorie
- Coding e Sistemistica
- Coding
- Post random wordpress
-
Altro problema
Il mio intendo era eliminare il plugin dei post correlati e usare il codice che si sta sviluppando in questo post al suo posto.
Volevo fare in modo che venissero visualizzate solo le thumbnails e che quando ci si passava col mouse sopra l'immagina si abbassava e sotto c'era il permalink al post.Il codice di partenza per i random_post è:
<?php $args = array( 'orderby' => 'rand', 'posts_per_page' => '4', ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php if( has_post_thumbnail() ) : ?> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_post_thumbnail( 'thumbnail' ); ?> </a> <?php endif; endwhile; else : // no posts found endif; /* Restore original Post Data */ wp_reset_postdata(); ?>
Il codice per l'animazione è questo:
<------------HTML--------------->
<div class="move_thumb_down"> <a class="link_random_post" href="url di destinazione">Un bel link</a> <img class="thumb_random_post" src="url.png" /> </div>
<------------css--------------->
.move_thumb_down { position: relative; height: 70px; width: 310px; background: #fff; text-align: center; } .move_thumb_down img.thumb_random_post { position: absolute; top: 0; left: 0; transition: top 0.2s ease-in-out; width: 310px; background: white; } .move_thumb_down:hover img.thumb_random_post { position: relative; top: 15px; }
Li ho uniti ed è uscito questo:
<------------html/php--------------->
<?php $args = array( 'orderby' => 'rand', 'posts_per_page' => '4', ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php if( has_post_thumbnail() ) : ?> <div class="move_thumb_down"> <a class="link_random_post" href="<?PHP the_permalink(); ?>"><?php the_title(); ?></a> <img class="thumb_random_post" src="<?php the_post_thumbnail( 'thumbnail' ); ?>" /> </div> <?php endif; endwhile; else : // no posts found endif; /* Restore original Post Data */ wp_reset_postdata(); ?>
<------------css--------------->
.move_thumb_down { position: relative; height: 150px; width: 150px; background:; text-align: center; float:left; padding:3px; } .move_thumb_down img.thumb_random_post { position: absolute; top: 0; left: 0; transition: top 0.2s ease-in-out; width: 150px; background: white; padding:3px; } .move_thumb_down:hover img.thumb_random_post { position: relative; top: 15px; }
Non so perchè produce un html finale sballato:
<div class="move_thumb_down"> <a class="link_random_post" href="ht tp ://localhost/wordpress/ciao-mondo/">Ciao mondo!</a> <img class="thumb_random_post" src="<img width="150" height="150" src="h ttp: //localhost/wordpress/wp-content/uploads/2014/12/network-marketing-truffa-1-150x150.jpg" class="attachment-thumbnail wp-post-image" alt="network-marketing-truffa-1" />" /> </div>
Risultato? L'animazione funziona, il link sotto l'immagine c'è ma l'immagine non la prende... uff
Quà un'immagine ---> http ://i62.tinypic.com/ico2us.jpg
-
Semplicemente perchè la funzione the_post_thumbnail() non rilascia il percorso, ma rilascia tutto il codice html: quindi <img src=" etc.
ti rimando alla function Reference di wordpress per questa funzione: http://codex.wordpress.org/Function_Reference/the_post_thumbnail
-
Ho letto più volte quella pagina ma non credo di aver letto quello che dici tu :x, grazie per la segnalazione...
Ho sostituito quel pezzo di codice con ```
<?php echo get_the_post_thumbnail($post_id, 'thumbnail', array('class' => 'mia_img_class')); ?>e funziona tutto alla grande :) Grazie :)
-
Comunque c'è scritto. E' evidente che non hai capito il funzionamento:
<?php the_post_thumbnail( 'thumbnail', array( 'class' => 'mia_img_class' ) ); ?>
Contento comunque che tu abbia risolto
-
Cosa si può utilizzare per distanziare le immagini?
Ora ho usato il padding ma non mi piace perchè il cuscinetto bianco che crea all'esterno si vede quando la thumbnails si muove...
-
In sequenza nella pagina ho prima i post random e poi un riquadro che occupa tutta la larghezza del contenitore.
Se per distanziare le thumbnails uso il padding non riesco ad allinearlo perfettamente con il box di sotto, come posso fare?
Inoltre, prima non ci ho pensato, è brutto vedere tra i post random anche il post stesso che si sta leggendo.
Si potrebbe inserire una funzione che non faccia uscire il post che si sta leggendo?
-
@m3820 said:
In sequenza nella pagina ho prima i post random e poi un riquadro che occupa tutta la larghezza del contenitore.
Se per distanziare le thumbnails uso il padding non riesco ad allinearlo perfettamente con il box di sotto, come posso fare?
Inoltre, prima non ci ho pensato, è brutto vedere tra i post random anche il post stesso che si sta leggendo.
Si potrebbe inserire una funzione che non faccia uscire il post che si sta leggendo?
non si può fare niente per la mia ultima richiesta?
-
La variabile args che contiene larray va aggiornato escludendo dalla query il post che stai leggendo. Trovi le definizioni nei codex cercando l'oggetto WP_Query()
-
Mi piace quando mi dai le indicazioni per trovare da me la soluzione
Attualmente non posso testare il codice ma ho letto un po di pagine di codex.
Pensavo di modificare il codice dichiarando una variabile $current_post=get_the_id();
E poi aggiornare $arg così:
$args=array(
'Orderby'=>'rand',
'Post_per_page'=>'4',
'Post_not_in'=>'current_post');Può funzionare?
-
Penso di si. Non mi ricordo bene, ma sembra poter funzionare. Non posso cercare bene perche sono fuori, altrimenti ti postavo l'array corretto.
Comunque in quello che hai scritto c'è un errore sulla variabile current_post. Cosi dovrebbe essere corretto:
$args=array(
'Orderby'=>'rand',
'Post_per_page'=>'4',
'Post_not_in'=>$current_post);
-
Aggiungo una cosa che ero dimenticato. La clusola post__not_in è scritta sbagliata perche deve avere il doppio underscore tra post e not.
In piu current post va passato in array.
quindi: post__not_in => array ($current_post)
-
Vabbè dai... Mi ci ero avvicinato.
Grazie
-
Ho apportato le modifiche per evitare che mi appaia nei post consigliati anche il post che si sta leggendo ma non funziona.
Questo il codice:
[PHP]<!-- start random post --> <p class="random_post_whit_thumbnail"> <strong>Aspetta, c'è dell'altro:</strong></p> <?php $current_post=get_the_id(); $args = array( 'orderby' => 'rand', 'posts_per_page' => '4', 'Post__not_in'=> array($current_post) ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php if( has_post_thumbnail() ) : ?> <div class="move_thumb_down"> <a class="link_random_post" href="<?PHP the_permalink(); ?>"><?php the_title(); ?></a> <?php echo get_the_post_thumbnail($post_id, 'thumbnail', array('class' => 'thumb_random_post')); ?> </div> <?php endif; endwhile; else : // no posts found endif; /* Restore original Post Data */ wp_reset_postdata(); ?> <!-- end random post -->[/PHP]Ho sbagliato qualcosa?
Grazie
-
aiutoooooooooooooooooooo!