Cómo separar los trackbacks de los comentarios no es un truco nuevo, pero cuando WordPress lanzó la versión 2.7, introdujeron un nuevo sistema de comentarios renovado que incluía comentarios encadenados, capacidad de paginar y mucho más. Pero junto con este cambio, también cambiaron muchos parámetros del archivo principal. En este artículo, le mostraremos cómo puede separar los trackbacks de los comentarios en WordPress. Este truco solo funcionará para la versión 2.7+ y si no lo está utilizando, debería comenzar ahora debido al reciente ataque de MySQL a versiones anteriores.

Encontramos este tutorial en uno de los sitios web de desarrolladores de WordPress llamado Sivel.net

Aquí hay un ejemplo del nuevo bucle al que nos referiremos en el tutorial:


    <?php if ( have_comments() ) : ?>
    <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to %u201C<?php the_title(); ?>%u201D</h3>
    <ol class="commentlist">
    <?php wp_list_comments(); ?>
    </ol>
    <div class="navigation">
    <div class="alignleft"><?php previous_comments_link() ?></div>
    <div class="alignright"><?php next_comments_link() ?></div>
    </div>

    <?php else : // this is displayed if there are no comments so far ?>

    <?php if ('open' == $post->comment_status) : ?>
    <!– If comments are open, but there are no comments. –>

    <?php else : // comments are closed ?>
    <!– If comments are closed. –>
    <p class="nocomments">Comments are closed.

    <?php endif; ?>
    <?php endif; ?> 

Encuentra este código en tu comments.php:


<?php if ( have_comments() ) : ?>

Directamente debajo de este código, agregue el siguiente código:

[/php

Once you have added the above code then find this code:


<?php wp_list_comments(); ?>

Replace the above code with the following code:


<?php wp_list_comments('type=comment'); ?>

Now as you see in our example loop there is a code for ordered list that looks like


</ol>

Directly below this code add:


<?php endif; ?>

Now by adding the endif tag, if you do not have any comments, the ordered list will not be displayed. Now lets move on to adding the pings to the comments.

Add the following code below or however you want to display it. It will display the pings.


    <?php if ( ! empty($comments_by_type['pings'])):?> 

Trackbacks / Pingbacks

Ahora, cuando tenga esto, mostrará los trackbacks pero los mostrará como comentarios. Ahora es posible que desee mostrarlos como una lista porque, de lo contrario, solo está desperdiciando espacio. Así que así es como puedes hacer eso.

Simplemente abrir functions.php que está en su carpeta de temas y agregue la siguiente función allí:


<?php
function list_pings($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
?>
<li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?>
<?php } ?> 

Esta función le permitirá mostrar los pings como una lista en lugar de mostrarse como un comentario. Pero tienes que hacer una cosa más.

Abra su comments.php y busque este código:


<ol>
<?php wp_list_comments('type=pings'); ?> 

Reemplácelo con:


<ol>
<?php wp_list_comments('type=pings&callback=list_pings'); ?>

Ahora, la copia final del ciclo de ejemplo se vería así:


    <?php if ( have_comments() ) : ?>
    <?php if ( ! empty($comments_by_type['comment']) ) : ?>
    <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to %u201C<?php the_title(); ?>%u201D</h3>
    <ol class="commentlist">
    <?php wp_list_comments('type=comment'); ?>
    </ol>

    <?php endif; ?>

    <?php if ( ! empty($comments_by_type['pings']) ) : ?>
    <h3 id="pings">Trackbacks/Pingbacks</h3>
    <ol class="pinglist">
    <?php wp_list_comments('type=pings&callback=list_pings'); ?>
    </ol>

    <?php endif; ?>
    <div class="navigation">
    <div class="alignleft"><?php previous_comments_link() ?></div>
    <div class="alignright"><?php next_comments_link() ?></div>
    </div>

    <?php else : // this is displayed if there are no comments so far ?>

    <?php if ('open' == $post->comment_status) : ?>
    <!– If comments are open, but there are no comments. –>

    <?php else : // comments are closed ?>
    <!– If comments are closed. –>
    <p class="nocomments">Comments are closed.

    <?php endif; ?>
    <?php endif; ?> 

Ahora has terminado. Hay un truco adicional que puedes usar. Dado que los muestra por separado, sería bueno que mostrara el recuento de comentarios preciso excluyendo trackbacks y pings. Utilice este tutorial que escribimos para mostrar el recuento de comentarios más preciso en WordPress.

.

Fuente: wpbeginner

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *