- Home
- Categorie
- Coding e Sistemistica
- Coding
- Post random wordpress
-
Post random wordpress
Buonasera ragazzi, vorrei mostrare all'interno dei post del mio blog un'area con altri post presi a caso.
Ho trovato questo codice in giro per il web:
[PHP]<ul>
<?php $cat_posts = get_posts('numberposts=4&orderby=rand'); ?>
<?php foreach($cat_posts as $post) {
setup_postdata($post); ?>
<li >
<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_excerpt(); ?>
</li>
<?php } ?>
</ul>[/PHP]Questo codice usa la funzione get_posta per prendere 4 post a caso.
E se invece io volessi utilizzare get_the_post_thumbnail per prendere 4 post casuali con le relative immagini in evidenza?
Come dovrei modificare?
Grazie
-
Nel forum c'è la sezione apposta per Wordpress.
-
@Oslino said:
Nel forum c'è la sezione apposta per Wordpress.
Si lo so ma riguarda PHP e pensavo fosse più appropriata questa sezione.
Chiedo ai moderatori di spostare se lo ritengono opportuno.
-
Sono riuscito a estrapolare le immagini in evidenza di 4 post random con collegamento al permalink del post ma non riesco a impostare la dimensione della miniatura.
Il codice è il seguente:
[PHP]<?php $thumbnails = get_posts( 'orderby=rand&numberposts=4' ); foreach ($thumbnails as $thumbnail) { if ( has_post_thumbnail($thumbnail->ID)) { echo '<a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">'; echo get_the_post_thumbnail($thumbnail->ID, 'medium'); echo '</a>'; } }?>[/PHP]
Qualcuno riesce a darmi una mano?
Grazie.
-
Per prima cosa, come già citato c'è la sezione Wordpress. si tratta di php, ma esiste una vera e propria sintassi per avere i post random.
Cmq, devi impararer ad utilizzare l'oggetto WP_query.
La soluzione è questa ed è semplcie:
[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() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>
[/PHP]
fonte: http://codex.wordpress.org/Class_Reference/WP_QueryOvviamente all'interno del ciclo while di wordpress, puoi tranquillamente utilizzare qualsiasi tipo di sintassi di Wordpress, richiamando appunto anche the_post_thumbnail() o chiedere se ci sono thumbnail: if( has_post_thumbnail() ) e così via per il resto..
-
Scusa ma non ho capito l'utilità del tuo post... Ho già il codice per estrapolare le immagini... Mi serve solo capire come settare la dimensione della miniatura.
Il tuo mi sembra un codice alternativo, o sbaglio?
-
Il mio è il codice che andrebbe utilizzato secondo lo standard di Wordpress.
Per impostare la dimensione della miniatura ( thumbnail() ) o utilizzare quelle predefinite di wordpress:the_post_thumbnail(); // without parameter -> 'post-thumbnail' the_post_thumbnail( 'thumbnail' ); // Thumbnail (default 150px x 150px max) the_post_thumbnail( 'medium' ); // Medium resolution (default 300px x 300px max) the_post_thumbnail( 'large' ); // Large resolution (default 640px x 640px max) the_post_thumbnail( 'full' ); // Full resolution (original size uploaded) the_post_thumbnail( array(100, 100) ); // Other resolutions
-
E se io volessi inserire la funzione the_post_thumbnail nel codice che hai postato sopra?
Devo aggiungerla o sostituire?
Grazie
-
Nella pagina di codex relativa alla funzione the_post_thumbnail si consiglia di usare la funzione get_the_post_thumbnail e sotto c'è un esempio per estrapolare "miniature con collegamento al permalink del post".
Sembrerebbe fare al caso mio, funziona alla grande ma anche questo mi restituisce immagini giganti...:?
Questo è il codice:
[PHP]<?php $thumbnails = get_posts('numberposts=5');
foreach ($thumbnails as $thumbnail) {
if ( has_post_thumbnail($thumbnail->ID)) {
echo '<a href="' . get_permalink( $thumbnail->ID ) . '" title="' . esc_attr( $thumbnail->post_title ) . '">';
echo get_the_post_thumbnail($thumbnail->ID, 'thumbnail');
echo '</a>';
}
}
?>[/PHP]Grazie
-
Ora prova ad utilizzare questo codice:
[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() ) : ?>
<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();
?>
[/PHP]
-
@Ultima said:
Ora prova ad utilizzare questo codice:
[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() ) : ?>
<a rel="nofollow" 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();
?>
[/PHP]Grazie per avermi modificato il codice ma funziona come tutti gli altri che ho provato.
Mi appaiono le immagini gigantesche una sotto l'altra.
Edit:
Ho notato una cosa strana, non so se può essere utile.
Con ispeziona elemento di Google Chrome le immagini risultano di una dimensione X mentre se faccio salva con nome le immagini risultano molto più piccole... è come se venissero ingrandite.
-
Prova ad inserire nella thumbnail le dimensioni: <?php the_post_thumbnail( array( 150, 150 ) ); ?>
-
@Ultima said:
Prova ad inserire nella thumbnail le dimensioni: <?php the_post_thumbnail( array( 150, 150 ) ); ?>
stessa cosa
Comunque come tema uso Optimizepress... può essere il problema?
-
no, o meglio non credo sia il template il problema.
Puoi fare un ultimo test?
Accedi via ftp alla cartella wp-content/uploads/
Controlla se le immagini caricate, vengono caricate in più formati che in linea di massima per uno standard di WP dovresti averne 1 Originale ed 1 per ogni size impostato nel back-end ( thumnail, medium, large ), quindi per un totale di 4.
-
@Ultima said:
no, o meglio non credo sia il template il problema.
Puoi fare un ultimo test?
Accedi via ftp alla cartella wp-content/uploads/
Controlla se le immagini caricate, vengono caricate in più formati che in linea di massima per uno standard di WP dovresti averne 1 Originale ed 1 per ogni size impostato nel back-end ( thumnail, medium, large ), quindi per un totale di 4.Non so se per le varie prove che ho fatto ma ogni immagine in evidenza dei post me la ritrovo in 7 formati!
Ho provato a modificare le dimensioni della thumbnail e forse questo mi ha generato altre immagini...
-
uhm...
Facciamo in questo modo e tagliamo la testa al toro. Anche perché credo che sia un problema di alcune configurazioni presenti nel file functions.php.
Inserisci le immagini in dei DIV, poi setti le dimensioni con i css
-
@Ultima said:
uhm...
Facciamo in questo modo e tagliamo la testa al toro. Anche perché credo che sia un problema di alcune configurazioni presenti nel file functions.php.
Inserisci le immagini in dei DIV, poi setti le dimensioni con i cssnon saprei proprio come fare...
-
-
Non capito cosa devo fare...
Mettere le immagini nei div già quando le inserisco nel post?
O fare in modo che tramite PHP le thumbnails estrapolate si ritrovano nei DIV?
Grazie
-
forse è meglio che istallo un plugin... io non sono capace di trovare la soluzione