Paginación de comentarios en WordPress

  • Autor Autor Chitauri
  • Fecha de inicio Fecha de inicio
C

Chitauri

Hola, quería paginar los comentarios de wordpress, y leí este post, pero tengo dos dudas.

Solo necesito un par de códigos. El primero irá en el archivo functions.php de tu tema, este:

Insertar CODE, HTML o PHP:
function wp_comments_paginados() {
   $pages = '';
   $max = get_comment_pages_count();
   $page = get_query_var('cpage');
   if (!$page) $page = 1;
   $a['current'] = $page;
   $a['echo'] = false;

   $total = 0; //1 - muestra el texto "Página N de N", 0 - no muestra
   $a['mid_size'] = 3; //cuantos enlaces se mostrarán a izquierda y derecha del actual
   $a['end_size'] = 1; //cuantos enlaces se mostrarán al principio y al fin
   $a['prev_text'] = '« Anterior'; //texto para el enlace de "página anterior"
   $a['next_text'] = 'Siguiente »'; //texto para el enlace de "página siguiente"

   if ($max > 1) echo '<div class="commentNavigation">';
   if ($total == 1 && $max > 1) $pages = '<span class="pages">Página ' . $page . ' de ' . $max . '</span>'."\r\n";
   echo $pages . paginate_comments_links($a);
   if ($max > 1) echo '</div>';
}

¿Exactamente donde tengo que colocar este código dentro de funtions.php?

Luego solo hay que añadir este otro código en el “loop” de los comentarios, cerca (arriba o debajo, a tu gusto) de la función wp_list_comments(), normalmente en el fichero comments.php para que se active la paginación de comentarios.

Insertar CODE, HTML o PHP:
<?php if(function_exists('wp_comments_paginados')) wp_comments_paginados(); ?>

¿Y este código en que lugar de comments.php lo tengo que colocar?


---------- Post agregado el 28-sep-2013 hora: 02:00 ----------

Ya lo conseguí.

El código que tenía que sustituir era este:

Insertar CODE, HTML o PHP:
<?php
		if ( get_comment_pages_count( ) > 1 && get_option( 'page_comments' ) ){ // Are there comments to navigate through?
?>
		<div id="nav-below-comments" class="clearfix">
			<span class="nav-previous">
<?php
			previous_comments_link(  '<span class="meta-nav">&larr;</span> '. esc_html__( 'Older Comments', 'Raindrops' ) );
?>
			</span>
    		<span class="nav-next">
<?php
			next_comments_link( esc_html__( 'Newer Comments ', 'Raindrops' ). '<span class="meta-nav">&rarr;</span>' );
?>
			</span>
		</div>
<?php
       } // check for comment navigation
?>

Lo reemplazé por este:

Insertar CODE, HTML o PHP:
<div class="pagination">
    <?php paginate_comments_links(); ?>
</div>

Ahora ya puedo paginar comentarios sin plugin
 
Hola, quería paginar los comentarios de wordpress, y leí este post, pero tengo dos dudas.

Solo necesito un par de códigos. El primero irá en el archivo functions.php de tu tema, este:

Insertar CODE, HTML o PHP:
function wp_comments_paginados() {
   $pages = '';
   $max = get_comment_pages_count();
   $page = get_query_var('cpage');
   if (!$page) $page = 1;
   $a['current'] = $page;
   $a['echo'] = false;

   $total = 0; //1 - muestra el texto "Página N de N", 0 - no muestra
   $a['mid_size'] = 3; //cuantos enlaces se mostrarán a izquierda y derecha del actual
   $a['end_size'] = 1; //cuantos enlaces se mostrarán al principio y al fin
   $a['prev_text'] = '« Anterior'; //texto para el enlace de "página anterior"
   $a['next_text'] = 'Siguiente »'; //texto para el enlace de "página siguiente"

   if ($max > 1) echo '<div class="commentNavigation">';
   if ($total == 1 && $max > 1) $pages = '<span class="pages">Página ' . $page . ' de ' . $max . '</span>'."\r\n";
   echo $pages . paginate_comments_links($a);
   if ($max > 1) echo '</div>';
}

¿Exactamente donde tengo que colocar este código dentro de funtions.php?

Luego solo hay que añadir este otro código en el “loop” de los comentarios, cerca (arriba o debajo, a tu gusto) de la función wp_list_comments(), normalmente en el fichero comments.php para que se active la paginación de comentarios.

Insertar CODE, HTML o PHP:
<?php if(function_exists('wp_comments_paginados')) wp_comments_paginados(); ?>

¿Y este código en que lugar de comments.php lo tengo que colocar?


---------- Post agregado el 28-sep-2013 hora: 02:00 ----------

Ya lo conseguí.

El código que tenía que sustituir era este:

Insertar CODE, HTML o PHP:
<?php
        if ( get_comment_pages_count( ) > 1 && get_option( 'page_comments' ) ){ // Are there comments to navigate through?
?>
        <div id="nav-below-comments" class="clearfix">
            <span class="nav-previous">
<?php
            previous_comments_link(  '<span class="meta-nav">&larr;</span> '. esc_html__( 'Older Comments', 'Raindrops' ) );
?>
            </span>
            <span class="nav-next">
<?php
            next_comments_link( esc_html__( 'Newer Comments ', 'Raindrops' ). '<span class="meta-nav">&rarr;</span>' );
?>
            </span>
        </div>
<?php
       } // check for comment navigation
?>

Lo reemplazé por este:

Insertar CODE, HTML o PHP:
<div class="pagination">
    <?php paginate_comments_links(); ?>
</div>

Ahora ya puedo paginar comentarios sin plugin
Excelente trabajo en agregar la paginación de comentarios sin necesidad de un plugin. Para responder a tus preguntas sobre dónde colocar el código en functions.php y en comments.php:

1. El código que proporcionaste para functions.php debe colocarse dentro de la sección de funciones del archivo. Por lo general, se sugiere agregar código personalizado al final del archivo functions.php de tu tema para evitar conflictos con otras funciones. Puedes ubicarlo antes de la etiqueta de cierre `?>` al final del archivo.

2. Respecto al segundo código que mencionas para comments.php, debes colocarlo dentro del archivo comments.php antes o después de la función `wp_list_comments()`, como indicaste. Puedes elegir la ubicación que mejor se adapte a la estructura de tu tema, asegurándote de insertarlo dentro del loop de comentarios.

Si ya lo conseguiste y has logrado implementar la paginación de comentarios con éxito, ¡felicidades! Si tienes más consultas o requieres ayuda adicional, no dudes en preguntar. ¡Buen trabajo!
 
Atrás
Arriba