Recientemente, uno de nuestros usuarios nos preguntó si era posible agregar publicaciones fijas a los archivos de tipos de publicaciones personalizadas. Por defecto, WordPress tiene la funcionalidad adhesiva disponible para las publicaciones, pero no para otros tipos de publicaciones. En este artículo, le mostraremos cómo agregar publicaciones fijas en los archivos de tipo de publicación personalizada de WordPress. Antes de seguir adelante, es probable que desee aprender a crear tipos de publicaciones personalizadas en WordPress.
Adición de publicaciones adhesivas en tipos de publicaciones personalizadas
Lo primero que debe hacer es instalar y activar el complemento Sticky Custom Post Types. Después de activar el complemento, ve a Configuraciones »Lectura y desplácese hacia abajo a la sección Tipos de publicaciones personalizadas adhesivas. A continuación, debe elegir los tipos de publicaciones personalizadas en las que desea que se active esta opción.
Ahora lo que hemos hecho aquí es que hemos agregado funciones de publicaciones adhesivas a nuestros tipos de publicaciones personalizadas. Las publicaciones adhesivas en los tipos de publicaciones personalizadas se mostrarán en la página principal al igual que las publicaciones adhesivas regulares.
El problema es que, de forma predeterminada, WordPress solo muestra publicaciones adhesivas en la página de inicio. No muestra publicaciones adhesivas en las páginas de archivo.
Mostrar publicaciones adhesivas en archivos de tipos de publicaciones personalizadas
Supongamos que tiene un tipo de publicación personalizado para las Revisiones de películas con publicaciones adhesivas habilitadas utilizando el complemento que hemos mencionado anteriormente. Ahora desea que las publicaciones adhesivas en los tipos de publicaciones de reseñas de películas se muestren de forma diferente y además de las críticas de películas normales no adhesivas. Me gusta esto:
Para lograr este objetivo, lo primero que necesita es una plantilla de archivo para su tipo de publicación personalizada como esta: archive-post-type.php
. Obtenga información sobre cómo crear una página de archivo de tipo de publicación personalizada. Por ejemplo, si tiene un tipo de publicación personalizado críticas de cine
entonces su plantilla de página de archivo debe ser archive-movie-reviews.php
. Si no tienes una plantilla, crea una. Simplemente copie los contenidos de archive.php en el directorio de su tema y péguelos en un nuevo archivo archive-your-post-type.php
.
El siguiente paso es agregar este código en el tema functions.php
archivo:
function wpb_cpt_sticky_at_top ($ publicaciones) { // aplicarlo solo en los archivos if (is_main_query () && is_post_type_archive ()) { global $ wp_query; $ sticky_posts = get_option ('sticky_posts'); $ num_posts = count ($ posts); $ sticky_offset = 0; // Encuentra las publicaciones adhesivas for ($ i = 0; $ i ID, $ sticky_posts)) { $ sticky_post = $ posts [$ i]; // Eliminar pegajoso de la posición actual array_splice ($ posts, $ i, 1); // Mover al frente, después de otras cosas pegajosas array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ sticky_offset ++; // Eliminar la publicación de la matriz de posts pegajosos $ offset = array_search ($ sticky_post-> ID, $ sticky_posts); unset ($ sticky_posts [$ offset]); } } // Busca más publicaciones adhesivas si es necesario if (! 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 ($ stickies as $ sticky_post) { array_splice ($ posts, $ sticky_offset, 0, array ($ sticky_post)); $ sticky_offset ++; } } } devolver $ publicaciones; } add_filter ('the_posts', 'wpb_cpt_sticky_at_top'); // Agregue una clase pegajosa en el título del artículo para diseñar entradas adhesivas de manera diferente function cpt_sticky_class ($ classes) { if (is_sticky ()): $ classes [] = 'sticky'; devuelve $ clases; terminara si; devuelve $ clases; } add_filter ('post_class', 'cpt_sticky_class');
El código anterior movería tus publicaciones adhesivas a la parte superior, y si tu tema está usando post_class ()
función, entonces agregaría pegajoso en la clase de publicación.
Puedes diseñar tus publicaciones adhesivas usando .pegajoso
clase en tu hoja de estilo. Ejemplo:
.sticky { color de fondo: #ededed; background-image: url ('http://example.com/wp-content/uploads/featured.png'); background-repeat: no-repeat; posición de fondo: arriba derecha; }
Esperamos que este artículo lo ayude a agregar publicaciones adhesivas en los archivos de tipo de publicación personalizada. Para preguntas y comentarios, por favor deje un comentario a continuación.
Fuente: Tareq Hasan