¿Quieres excluir una entrada fija del bucle en WordPress? Estás en el lugar adecuado.
Las entradas fijas son una buena forma de destacar tus contenidos destacados. Sin embargo, en nuestra opinión, hay ciertos lugares en tu sitio web donde no necesitas entradas fijas para estar en la parte superior.
En este artículo, le mostraremos cómo excluir completamente las entradas fijas del bucle en WordPress.
¿Por qué hay que excluir del bucle las entradas fijas?
La eliminación de entradas fijas de un bucle de su sitio web WordPress puede ser útil si no desea mostrarlas en un área determinada de su sitio web WordPress.
Las entradas fijas son útiles para destacar contenido importante, como tus artículos principales, entradas de blog con mucho tráfico y contenido sensible al tiempo. Sin embargo, pueden saturar el widget de entradas más recientes y dificultar el acceso a los contenidos más recientes.
Aquí es donde resulta útil excluir entradas fijas del bucle. WordPress no puede adivinar esto, por lo que necesita decirle explícitamente a WordPress que excluya entradas de blog fijas de un bucle personalizado.
Veamos cómo eliminar entradas fijas del bucle en WordPress.
Excluir entradas fijas del bucle en WordPress
Para ayudarle a excluir una entrada fija de la parte superior del bucle o a quitarla completamente del bucle, hemos creado un fragmento de código personalizado.
Dado que esto requiere la edición de código en su sitio web, puede ser complicado para los principiantes. Si no lo has hecho antes, te recomendamos que consultes nuestra guía sobre cómo pegar fragmentos de código de Internet en WordPress para obtener más información.
También puedes plantearte contratar a un desarrollador para que te ayude individualmente.
Cómo ignorar entradas fijas en WordPress
Este código ignora que una entrada es fija y muestra las entradas en el orden normal en su blog de WordPress.
Utilizando este código, tus entradas fijas seguirán apareciendo en el bucle, pero no se colocarán en la parte superior.
Todo lo que tienes que hacer es introducir el siguiente código en el archivo functions.php de tu tema o en un plugin de fragmentos de código:
<?php
// The loop arguments
$args = array(
'posts_per_page' => 10,
'ignore_sticky_posts' => 1
);
// The loop
$the_query = new WP_Query($args);
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
}
}
Recomendamos añadir este código con WPCode, el mejor plugin de fragmentos de código para WordPress. Con WPCode, puedes añadir código personalizado en WordPress de forma segura y sencilla, sin necesidad de editar el archivo functions.php de tu tema.
Para empezar, necesitas instalar y activar el plugin gratuito WPCode. Si necesitas ayuda, consulta este tutorial sobre cómo instalar un plugin de WordPress.
Una vez activado el plugin, diríjase a la página Fragmentos de código ” + Añadir fragmento desde su escritorio de WordPress.
Desde allí, busque la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Usar fragmento” situado debajo.
A continuación, puede añadir un título a su fragmento de código, que puede ser cualquier cosa que le ayude a recordar para qué sirve el código.
A continuación, pegue el código anterior en el cuadro “Vista previa del código” y seleccione “Fragmento de código PHP” como tipo de código en la lista desplegable de la derecha.
Después, basta con cambiar el conmutador de “Inactivo” a “Activo” y hacer clic en el botón “Guardar fragmento de código”.
Excluir completamente del bucle las entradas fijas
A continuación, si está utilizando entradas fijas en un plugin deslizante, entonces a veces es posible que desee excluir por completo sus entradas fijas del bucle.
Simplemente añada el siguiente fragmento de código a su archivo functions.php o en un plugin de fragmentos de código:
<?php
// The loop arguments
$args = array(
'posts_per_page' => 10,
'post__not_in' => get_option( 'sticky_posts' ) // do not display the sticky posts at all.
);
// The loop
$the_query = new WP_Query($args);
if ($the_query->have_posts()) {
while ($the_query->have_posts()) {
$the_query->the_post();
}
}
Este código no mostrará entradas fijas en el bucle de entradas.
Puedes seguir los mismos pasos que arriba para añadir este código usando el plugin WPCode.
Para más consejos sobre cómo modificar temas de WordPress, marque / compruebe nuestra Hoja de trucos sobre temas de WordPress para principiantes.
Esperamos que este artículo te haya ayudado a aprender cómo excluir entradas fijas del bucle en WordPress. Puede que también quieras ver nuestra guía sobre cómo mostrar u ocultar widgets en páginas específicas de WordPress y nuestra selección de los mejores plugins de entradas relacionadas para WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
ogunrinde fatai
I am having similar issue with the broken pagination when removing the sticky post, does anyone has a fix thanks
Sam
Your code just causes my links to break and i’m not sure why
Stephen
I am having a problem that the one “sticky” post shows up as the first “featured” post so there is the same article listed twice in succession. Any help would be great.
Kyle Shevlin
Don’t know if this happened for anyone else, but using this broke the pagination. My next page of posts would be a repeat of the first page. If this happened to anyone else, do you have a fix?
Umut Kay
Hi,
i have the same issue, do you found any workaround or another solution?
Super Nguyen
I have the same problem, my navigation on homepage not working
Agus Almaula
Thank you so much, just because i am totally wpBeginner i came to this site and my WP development solved.
~agus~
Rut
Where do I paste this peace of code? I constantly get errors…
Daniel Lemes
Both methods broke my pagination (page links still there, but load always the same posts), any idea on it?
Rohit Tripathi
This is really great. One place where you don’t need this is when creating a custom sidebar widget to display recent posts.
Thanks.
Kyle Shevlin
Is there any reason that adding this would remove the functionality of archives and tag cloud links? I, too, am trying to exclude sticky posts from my main blog loop using one loop to operate a featured section and a second to operate everything else. The trouble I’m having comes when I click on links in an archive section or tag cloud. It redirects me back to my first page again. When I remove this exclusionary code, it works just fine. Can’t figure this one out.
chris mccoy
you can also use pre_get_posts so you dont have to alter your main loop.
$query->set(‘post__not_in’, get_option(‘sticky_posts’));