Agregar publicaciones fijas en tipos de publicaciones personalizadas
Lo primero que debe hacer es instalar y activar el Tipos de publicaciones adhesivas personalizadas plugin. Después de activar el plugin, ir Configuración »Lectura y desplácese hacia abajo hasta la sección Tipos de publicaciones personalizadas fijas. A continuación, debe elegir los tipos de publicaciones personalizadas donde desea que se habilite la opción Stick This.
Ahora, lo que hemos hecho aquí es que hemos agregado la función de publicaciones fijas a nuestros tipos de publicaciones personalizadas. Las publicaciones fijas en tipos de publicaciones personalizadas se mostrarán en la página principal al igual que las publicaciones fijas normales.
El problema es que, por defecto, WordPress solo muestra publicaciones fijas en la página de inicio. No muestra publicaciones fijas en páginas de archivo.
Visualización de publicaciones fijas en archivos de tipo de publicación personalizados
Supongamos que tiene un tipo de publicación personalizada para Reseñas de películas con publicaciones fijas habilitadas mediante el plugin hemos mencionado anteriormente. Ahora desea que sus publicaciones adhesivas en los tipos de publicaciones de reseñas de películas se muestren de manera diferente y además de las reseñas de películas regulares no adhesivas. Como 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
. Aprenda a crear una página de archivo de tipo de publicación personalizada. Por ejemplo, si tiene un tipo de publicación personalizada movie-reviews
entonces su plantilla de página de archivo debería ser archive-movie-reviews.php
. Si no tiene una plantilla, cree una. 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 agregar este código en la carpeta de tu tema. functions.php
expediente:
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');
El código anterior movería sus publicaciones fijas a la parte superior, y si su tema está usando post_class()
función, luego agregaría pegajoso en la clase de publicación.
Puedes diseñar tus publicaciones fijas usando .sticky
class en su hoja de estilo. Ejemplo:
.sticky { background-color:#ededed; background-image:url('http://example.com/wp-content/uploads/featured.png'); background-repeat:no-repeat; background-position:right top; }
Esperamos que este artículo le haya ayudado a agregar publicaciones fijas en archivos de tipo de publicación personalizados. Si tiene preguntas y comentarios, deje un comentario a continuación.
Fuente: Tareq Hasan
.
Fuente: wpbeginner