Es una muy buena idea proponer al final de tus artículos un listado de post relacionados para ofrecerle al usuario opciones para seguir navegando por tu sitio web y que no se encuentre en un «callejón sin salida»
Hay multitud de plugins que te permiten hacer eso, pero cada plugin que instalas es una puerta a posibles vulnerabilidades y ataques hacia tu web, así que cuantos menos plugins instales, mucho mejor.
Es por eso que he querido compartir contigo este código, que si lo copias en el archivo functions.php te brindará esta opción con sólo unas pocas líneas de código.
Antes de cambiar cualquier cosa, haz siempre una copia de seguridad.
Si te da miedo tocar el archivo functions.php ponte con contacto conmigo y te lo configuro por 30€.
Para ver el resultado de este código funcionando, sólo tienes que bajar hasta el final del post y ver los artículos relacionados que te propone 😉
add_action( 'genesis_after_entry_content', 'sk_related_posts', 12 ); function sk_related_posts() { global $do_not_duplicate; if ( ! is_singular ( 'post' ) ) { return; } $count = 0; $related = ''; $do_not_duplicate = array(); $cats = wp_get_post_categories( get_the_ID() ); // If we have some categories and less than 5 posts, run the cat query. if ( $cats && $count <= 4 ) { $query = sk_related_cat_query( $cats, $count ); $related .= $query['related']; $count = $query['count'];} // End here if we don't have any related posts. if ( ! $related ) { return; } // Display the related posts section. echo '<div class="related-posts">'; echo '<h3 class="related-title">Quizá te interese:</h3>'; echo '<div class="related-posts-list" data-columns>' . $related . '</div>'; echo '</div>'; } function sk_related_cat_query( $cats, $count ) { global $do_not_duplicate; if ( ! $cats ) { return; } $postIDs = array_merge( array( get_the_ID() ), $do_not_duplicate ); $catIDs = array(); foreach ( $cats as $cat ) { if ( 3 == $cat ) { continue; } $catIDs[] = $cat; } $showposts = 3 - $count; $tax_query = array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-link', 'post-format-status', 'post-format-aside', 'post-format-quote' ), 'operator' => 'NOT IN' ) ); $args = array( 'category__in' => $catIDs, 'post__not_in' => $postIDs, 'showposts' => $showposts, 'ignore_sticky_posts' => 1, 'orderby' => 'rand', 'tax_query' => $tax_query, ); $related = ''; $cat_query = new WP_Query( $args ); if ( $cat_query->have_posts() ) { while ( $cat_query->have_posts() ) { $cat_query->the_post(); $count++; /*$title = genesis_truncate_phrase( get_the_title(), 35 );*/ $title = get_the_title(); $related .= '<div class="one-third">'; $related .= '<a class="related-image" href="' . get_permalink() . '" rel="bookmark" title="Enlace a ' . $title . '">' . genesis_get_image( array( 'size' => 'related' ) ) . '</a>'; $related .= '<div class="one-copy">'; $related .= '<a class="related-post-title" href="' . get_permalink() . '" rel="bookmark" title="Enlace a ' . $title . '">' . $title . '</a>'; $related .= '</div>'; $related .= '</div>'; } } wp_reset_postdata(); $output = array( 'related' => $related, 'count' => $count ); return $output; }
Si usas Genesis Framework es posible que te interese conseguir las 97 plantillas premium que regalo con mi curso de Genesis
Y si todavía no lo usas, te recomiendo que le des una oportunidad, tienes muchas razones para usar Genesis Framework
Deja una respuesta