Agregar publicaciones relacionadas en páginas AMP de WordPress

Como insertar una sección de páginas relacionadas, mostrando enlaces a otras entradas similares del blog, agregando el código manualmente, sin usar plugins.

La sección de páginas o publicaciones relacionadas (related post), en una de las que nunca deben faltar en ninguna página de internet.
Ayuda a los lectores a descubrir otras entradas con contenido similar en el sitio y facilita que sigan navegando y explorando el contenido.
En otro post comparto como agregar esta sección en las páginas normales de WordPress, sin instalar plugins y en esta explico como implementarlo en las páginas en formato AMP.
Es todavía más importante puesto que las páginas en este formato no aceptan a gran mayoría de los plugins habituales.


Como insertar las páginas relacionadas en AMP

Este método solo es para las páginas relacionadas en los blog que usan el plugin oficial AMP for WordPress, creado por Automattic, Google y otros desarrolladores.
Para implementarlo es necesario crear un nuevo archivo de texto y agregar unas líneas de código al archivo de configuración del blog llamado “functions.php”, situado en la carpeta de tema activo.

Recomiendo crear previamente una carpeta Child en el tema activo y copiar en su interior un nuevo archivo “functions.php” en el que se agregara el código.
En otro artículo se explica con más detales como hacerlo.

A continuación el código necesario.


Código para mostrar publicaciones relacionadas

En el interior de la carpeta Child mencionada anteriormente, crea una nueva carpeta de nombre “amp” y en su interior crea un nuevo archivo de nombre “p-relacionadas.php”.
Edítalo y pega las siguientes instrucciones en su interior.

<?php
if ( ! is_single() ) {
    return;
} 
global $post;
$taxs = get_object_taxonomies( $post );
if ( ! $taxs ) {
    return;
} 
$count = 4;  
// ignoring post formats
if( ( $key = array_search( 'post_format', $taxs ) ) !== false ) {
    unset( $taxs[$key] );
}  
// try tags first  
if ( ( $tag_key = array_search( 'post_tag', $taxs ) ) !== false ) {  
    $tax = 'post_tag';
    $tax_term_ids = wp_get_object_terms( $post->ID, $tax, array( 'fields' => 'ids' ) );
}  
// if no tags, then by cat or custom tax  
if ( empty( $tax_term_ids ) ) {
    // remove post_tag to leave only the category or custom tax
    if ( $tag_key !== false ) {
        unset( $taxs[ $tag_key ] );
        $taxs = array_values($taxs);
    }  
    $tax = $taxs[0];
    $tax_term_ids = wp_get_object_terms( $post->ID, $tax, array('fields' => 'ids') );  
}  
if ( $tax_term_ids ) {
    $args = array(
        'post_type' => $post->post_type,
        'posts_per_page' => $count,
        'orderby' => 'rand',
        'tax_query' => array(
            array(
                'taxonomy' => $tax,
                'field' => 'id',
                'terms' => $tax_term_ids
            )
        ),
        'post__not_in' => array ($post->ID),
    );
    $related = get_posts( $args );
    if ( $related ) {   ?>
        <div class="amp-wp-article-content">
            <h3>Publicaciones relacionadas</h3> 
<ul>			
            <?php foreach( $related as $post) {
                setup_postdata( $post );
                ?>
                <li><a href="<?php echo esc_url( amp_get_permalink( get_the_id() ) ); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
            <?php } ?> 
</ul>			
        </div>
    <?php
    }
    wp_reset_postdata();
}
?>

En la línea 10 del código anterior, podemos especificar la cantidad de publicaciones relacionadas que se mostrarán.
En este ejemplo son 4.


Código para al archivo de configuración del tema

En el interior del archivo “functions.php”, situado dentro de la misma carpeta Child, agrega las siguientes instrucciones:

// Agregar publicaciones relacionadas AMP
function my_amp_post_article_footer_meta( $parts ) { 
    $index = 0;     
    array_splice( $parts, $index, 0, array( 'my-related-posts' ) ); 
    return $parts;
}
add_filter( 'amp_post_article_footer_meta', 'my_amp_post_article_footer_meta' );
function my_amp_related_posts_path( $file, $template_type, $post ) { 
    if ( 'my-related-posts' === $template_type ) {
        $file = get_stylesheet_directory() . '/amp/p-relacionadas.php';
    }
    return $file;
}
add_filter( 'amp_post_template_file', 'my_amp_related_posts_path', 10, 3 );

 


Lugar de la página donde se mostrarán las publicaciones relacionadas

Podemos especificar en el código anterior, donde deseamos exactamente situar la sección de publicaciones relacionadas
El número en la línea 2 indica donde se debe insertar.

– El valor 0 indica que se mostrará inmediatamente bajo el contenido, antes que las Categorías.
– El valor 1 indica que se mostrará después de las Categorías y Etiquetas, pero antes del botón de Comentar
– El valor 2 indica que se mostrará después que el botón de Comentar.

 


Ejemplo de páginas relacionadas en AMP

En la imagen de portada se puede ver una captura de la sección “Publicaciones relacionadas” en un móvil.
Los que acceden a esta página desde una computadora de escritorio o Laptop, pueden comprobar esta funcionalidad, usando el siguiente enlace que conduce a esta misma página en formato AMP.
Agregar publicaciones relacionadas en páginas AMP de WordPress

Estoy en: NorfiPC | Notas | WordPress | Agregar publicaciones relacionadas en páginas AMP de WordPress



Páginas relacionadas

Buscar con Google