Come visualizzare i post sticky in prima posizione in wp_query?
Sto cercando da tempo ma non sono riuscito a trovare una soluzione. Non sono un programmatore. Per favore aiutami. Ecco il mio codice wp_query;
$my_query = new WP_Query('category_name=animals&showposts=10');
while ($my_query->have_posts()) :
$my_query->the_post();
$do_not_duplicate = $post->ID; ?>
<li><a href="<?php the_permalink()?>"><?php the_title(); ?></a></li><?php
endwhile; ?>

Non è del tutto chiaro cosa stai cercando di fare, ma i post sticky dovrebbero già essere in cima – cioè i primi post visualizzati – a meno che tu non abbia fatto qualcosa per impedirlo. Questo è il comportamento predefinito. Ho appena testato questo con la tua query, cambiando solo l'ID della categoria con uno esistente sul mio server.
Per evitare che i post sticky vengano riordinati – cioè per ottenere il comportamento opposto – puoi passare un parametro a WP_Query
in questo modo:
$my_query = new WP_Query('category_name=animali&showposts=10&ignore_sticky_posts=true');
Oppure impostare il valore prima che la query venga eseguita con:
$my_query->set('ignore_sticky_posts',true); // $my_query può essere qualsiasi variabile istanziata di WP_Query.
Potresti cercare nel tuo tema e nei plugin la stringa ignore_sticky_posts
per vedere se qualcosa sta interferendo con la query.
Potresti anche provare a forzare il riordino dei post sticky con:
function force_sticky_wpse_98187($qry) {
$qry->set('ignore_sticky_posts',false);
}
add_action('pre_get_posts','force_sticky_wpse_98187',1000);
Questo aggiunge un filtro con una priorità arbitrariamente alta in modo che dovrebbe essere eseguito come ultima azione su quell'hook. Non so se funziona. È completamente non testato. Questo cambierebbe (se funziona) tutte le query, il che è probabilmente troppo aggressivo. Dovresti aggiungere ulteriori condizioni per limitare quando viene eseguito.

$category = get_cat_ID('animali');
// La Query
$args = array('post__in' => get_option( 'sticky_posts' ),
'ignore_sticky_posts' => 1, 'order' => 'ASC' , 'cat' => $category);
query_posts( $args );
// Il Loop
while ( have_posts() ) : the_post();
?>
<div id="sticky_title"><h1><?php the_title();?></h1></div>
<div id="sticky_excerpt"><p><?php the_excerpt(); ?></p></div>
<?php
endwhile;
// Reset Query
wp_reset_query();

ho provato questo codice e funziona ma non molto bene. quando rendo un post 'sticky' questo codice mostra solo i post 'sticky'. quindi vorrei mostrare 10 post dalla categoria 'animal' ma con i post sticky in cima
