AprenderWP

Sitio especializado en Wordpress para principiantes

  • Principiantes
  • Tutoriales
  • Plugins
  • Temas
  • Blog
    • Novedades
    • Showcase
    • Opiniones
AprenderWP » Tutoriales » Cómo añadir mensajes pegajosos en los archivos de WordPress Custom Post Type

Cómo añadir mensajes pegajosos en los archivos de WordPress Custom Post Type

Recientemente uno de nuestros usuarios nos preguntó si era posible añadir entradas pegajosas a los archivos de tipo post personalizado. Por defecto, WordPress tiene la funcionalidad adhesiva disponible para los mensajes, pero no para otros tipos de mensajes. En este artículo te mostraremos cómo añadir posts pegajosos en los archivos de tipo post personalizado de WordPress. Antes de seguir adelante, probablemente quieras aprender a crear tipos de mensajes personalizados en WordPress.

Adición de mensajes pegajosos en tipos de mensajes personalizados

Lo primero que tienes que hacer es instalar y activar el plugin Sticky Custom Post Types. Después de activar el plugin, vaya a Settings » Reading y desplácese hacia abajo hasta la sección Sticky Custom Post Types. A continuación, tienes que elegir los tipos de mensajes personalizados en los que quieres que esté activada la opción Stick This.

Ahora lo que hemos hecho aquí es que hemos añadido la función de mensajes pegajosos a nuestros tipos de mensajes personalizados. Los mensajes pegajosos en los tipos de mensajes personalizados se mostrarán en la primera página al igual que los mensajes pegajosos normales.

El problema es que por defecto WordPress sólo muestra los mensajes pegajosos en la página de inicio. No muestra las entradas pegajosas en las páginas de archivo.

Mostrando Mensajes Pegajosos en Archivos Personalizados de Tipo Postal

Supongamos que tiene un tipo de mensaje personalizado para las Comentarios de Películas con mensajes pegajosos habilitados usando el plugin que hemos mencionado anteriormente. Ahora quieres que tus entradas pegajosas en las reseñas de películas se muestren de forma diferente y encima de las no pegajosas y regulares. Así:

Para lograr este objetivo, lo primero que necesitas es una plantilla de archivo para tu tipo de mensaje personalizado: archive-post-type.php. Aprende a crear una página de archivo personalizada de tipo post. Por ejemplo, si tiene una plantilla de página de archivos comprimidos personalizada, ésta debe ser archive-movie-reviews.php. Si no tiene un modelo, cree uno. Simplemente copie el contenido de archive.php en el directorio de su tema y péguelo en un nuevo archivo archive-your-post-type.php.

El siguiente paso es añadir este código en el archivo functions.php del tema:

123456789101112131414151616171819202122232425252627282930313233343536373839404142434445445464748495051525355565657585960616263functionwpb_cpt_sticky_at_top( $posts) { // aplíquelo a los archivos sólo si ( is_main_query() && is_post_type_archive()) { global$wp_query; $sticky_posts= get_option(‘sticky_posts’); $num_posts= count( $posts); $sticky_offset= 0; // Encuentra los posts pegajosos para($i= 0; $iID, $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));                Eliminar un mensaje de una matriz de mensajes pegajosos $offset= array_search($sticky_post->ID, $sticky_posts); unset( $sticky_posts[$offset]); } Desconectar        }          // Busca más mensajes pegajosos si es necesario si (!empty( $sticky_posts)) $stickies= get_posts( array( ‘post__in’=> $sticky_posts, ‘post_type’=> $wp_query->query_vars[‘post_type’], ‘post_status’=> `publicar’, ‘nopaging’=> true ) );              foreach( $stickiesas$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 functioncpt_sticky_class($classes) { if( is_sticky()]:             $classes[] = ‘sticky’; return$classes; endif; return$classes; } add_filter(‘post_class’, ‘cpt_sticky_class’);

El código anterior movería tus mensajes pegajosos a la parte superior, y si tu tema está usando la función post_class(), entonces añadiría pegajoso en la clase post.

Puedes cambiar el estilo de tus mensajes pegajosos usando .sticky class en tu hoja de estilo. Ejemplo:

123456.sticky { color de fondo:#ededed;imagen de fondo:url(‘http://example.com/wp-content/uploads/featured.png’);repetición de fondo:no repetición;posición de fondo:parte superior derecha;}

Esperamos que este artículo le haya ayudado a añadir entradas pegajosas en archivos de tipo post personalizado. Para preguntas y comentarios, por favor deje un comentario a continuación.

Fuente: Tareq Hasan

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Sobre mi

Mi nombre es Joaquin y llevo 12 años creando sitios web en wordpress. En este blog comparto todos mis conocimientos.

Necesito ayuda con ...


Empezar un
Blog

Optimizar
Wordpress

Seguridad
Wordpress

SEO
Wordpress

Errores
Worpdress

Crear una
Tienda Online
Política de Privacidad
Política de Cookies
Aviso Legal

Copyright © 2021 · AprenderWP