Cómo agregar publicaciones fijas en archivos de tipo de publicación personalizada de WordPress

Recientemente, uno de nuestros usuarios nos preguntó si era posible agregar publicaciones fijas a archivos de tipo de publicación personalizados. De forma predeterminada, WordPress tiene una funcionalidad fija disponible para publicaciones, pero no para otros tipos de publicaciones. En este artículo, le mostraremos cómo agregar publicaciones fijas en archivos de tipo de publicación personalizada de WordPress. Antes de continuar, probablemente querrá aprender a crear tipos de publicaciones personalizadas en WordPress.

Agregar publicaciones persistentes en tipos de publicaciones personalizadas

Lo primero que debe hacer es instalar y activar el archivo. Tipos de publicaciones adhesivas personalizadas conectar. Después de activar el plugin, vaya a Configuración »Lectura y desplácese hacia abajo hasta la sección Tipos de publicaciones personalizadas persistentes. A continuación, debe elegir los tipos de publicaciones personalizadas donde desea habilitar esta opción.

Lo que hemos hecho aquí es que hemos agregado la funcionalidad de publicación fija a nuestros tipos de publicaciones personalizadas. Las publicaciones fijas en tipos de publicaciones personalizadas aparecerá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 que mencionamos 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 no adhesivas normales. Como esto:

[enlazatom_show_links]

Para lograr esto, 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 a su directorio de temas y péguelo en un nuevo archivo archive-your-post-type.php.

El siguiente paso es agregar este código a su 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 adhesivas 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 adhesivas usando .sticky class en su hoja de estilo. Ejemplo:

.sticky { 
background-color:#ededed;
background-image:url('https://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 a sus archivos de tipos de publicaciones personalizadas. Si tiene preguntas y comentarios, deje un comentario a continuación.

Fuente: Tareq Hasan

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicado. Required fields are marked *