Si te estoy entendiendo correctamente, solo quieres mostrar la publicación reciente más reciente en la página principal. Tuve el mismo problema hace uno o dos meses, y recibí una ayuda fantástica de la comunidad aquí en WordPress Answers. La solución es ejecutar dos bucles en su archivo index.php. Uno para extraer solo las publicaciones adhesivas más recientes, y el segundo para mostrar todos los demás tipos de publicaciones.
Aquí está el enlace , pero también publicaré mi código para este problema .
<?php get_header(); ?>
<?php get_sidebar( 'left' ); ?>
<?php if ( is_home() && !is_paged() ) : ?>
<div id="post-wrapper">
<?php
// Get IDs of sticky posts
$sticky = get_option( 'sticky_posts' );
// first loop to display only my single,
// MOST RECENT sticky post
$most_recent_sticky_post = new WP_Query( array(
// Only sticky posts
'post__in' => $sticky,
// Treat them as sticky posts
'ignore_sticky_posts' => 1,
// Order by date to get the most recently published sticky post
'orderby' => date,
// Get only the one most recent
'posts_per_page' => 1
) );
?>
<?php while ( $most_recent_sticky_post->have_posts() ) : $most_recent_sticky_post->the_post(); ?>
<!-- your code to display most recent sticky -->
<?php endwhile; wp_reset_query(); ?>
<?php endif; ?>
<?php
$all_other_posts = array(
'post__not_in' => get_option( 'sticky_posts' )
);
global $wp_query;
$merged_query_args = array_merge( $wp_query->query, $all_other_posts );
query_posts( $merged_query_args );
?>
<?php if( have_posts() ) : ?>
<?php while( have_posts() ) : the_post(); ?>
<!-- your code to display all other posts -->
<?php endwhile; ?>
<?php endif; ?>
</div> <!-- end #post-wrapper -->
Obviamente, este código no es copiar y pegar para todos. Me funcionó en la estructura de código que tenía en ese momento. Además, perdona el formato desagradable: P