Support » Allgemeine Fragen » paginate_comments_links funktioniert nicht

  • Gelöst juicylung

    (@juicylung)


    Hi,

    meine Kommentare auf einem Blog werden nicht „paginisiert“ und in Seiten aufgeteilt. Es werden immer nur so viele angezeigt wie ich vorher fetgelegt habe, der Rest bleibt einfach unsichtbar.
    Ich kriege es einfach nicht hin paginate_comments_links zum Laufen zu bringen. Woran kannst das liegen? Kann mir hie rjemand aushelfen?

    Grüße

    Hier ist meine comments.php:

    
    <div class="row">
    <div class="col-md-12">
    <div id="kommentare">
    <h2 class="comment-title">
    <?php
    if ( have_comments() ) {
    	echo '<span class="comment-Number">';
    	echo get_comments_number(); 
    	echo '</span>';
    	if ( get_comments_number() > 1 ) {
    		echo ' Kommentare';
    	}
    	else {
    		echo ' Kommentar';
    	}
    
    }
    	else {
    		echo '<hr />';
    		echo "Noch Keine Kommentare</h2>"; //falls keine Kommentare h2 schließen.
    		echo '<span class="text-muted">Sei der erste und hinterlasse einen Kommentar.</span>';
    		?> 
    	
    	<div class="formular">
    <?php comment_form();
    		echo "</div>"; //falls keine Kommentare row schließen.
    		echo "</div>"; //falls keine Kommentare col-md-12 schließen.
    		echo "</div>"; //falls keine Kommentare <div id="kommentare"> schließen.
    		echo "</div>"; //falls keine Kommentare <div class="formular"> schließen.
    		return;
    	}
    	?></h2>
    	<hr />
    	
    
    <ol class="kommentare-liste">
    <?php
    	# The comment functions use the query var 'cpage', so we'll ensure that's set
        $page = intval( get_query_var( 'cpage' ) );
        if ( 0 == $page ) {
            $page = 1;
            set_query_var( 'cpage', $page );
        }
    	require_once('class-wp-bootstrap-comment-walker.php');
    	wp_list_comments( array(
    		'style' 		=> 'ol',
    		'per_page' 		=> 5,
    		'page'			=> $page,
    		'walker'        => new Bootstrap_Comment_Walker(),
    		'avatar_size'	=> 65) 
    					);
    ?>
    	</ol>
    	<?php 
    	$args = array(
    	'base' => add_query_arg( 'cpage', '%#%' ),
    	'format' => '',
    	'total' => $max_page,
    	'current' => $page,
    	'echo' => true,
    	'add_fragment' => '#comments'
    					
    );
    	paginate_comments_links( $args ) ?>
    	
    	<div class="formular">
    <?php comment_form(); ?>
    	</div>
    
    	</div>
    	
    	
    	
    </div>
    </div>
    
    
Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • juicylung

    (@juicylung)

    Also ich habe inzwischen herausgefunden, dass wenn ich bei ‚total‘ die Anzahl der angezeigten Seiten manuell eingeben, also z.B. 5 dann funktioniert die Navigation. Allerdings werden dann natürlich immer 5 Seiten gezeigt, das will ich ja nicht. Ich möchte, dass sich die Seitenanzahl automatisch erstellt.

    Wie kriege ich das hin? Im Codex finde ich dazu nichts.

    juicylung

    (@juicylung)

    Gut nach einem Test mit var_dump, hat sich herausgestellt, dass $max_page bei mir NULL ist. Woran kann das liegen? Die Parameter für paginate_comments_links habe ich aus dem Codex.
    Auch <?php get_comment_pages_count( $comments, $per_page, $threaded); ?> funktioniert nicht, hier ist $threaded immer NULL.

    Bin jetzt auf die folgende Zwischen-Lösung gekommen: Jedoch finde ich die etwas unsicher, da ich hier mit ceil immer aufrunde. Gibt es hier sonst keine andere Lösung?

    $comment_count = get_comments_number();
    	$max_page = ceil($comment_count/$per_page);
    	
    	$args = array(
    	'base' => add_query_arg( 'cpage', '%#%' ),
    	'format' => '',
    	'total' => $max_page,
    	'current' => $page,
    	'echo' => true,
    	'add_fragment' => '#comments'
    					
    );
    	paginate_comments_links( $args ); ?>
    juicylung

    (@juicylung)

    Okay ich revidiere.

    Ich habe mir mal die comments-template.php unter wp-includes angeschaut und bin auf folgendes gestoßen. $wp_query->max_num_comment_pages;

    Habe jetzt also folgendes und das funktioniert auch:

    $max_page = $wp_query->max_num_comment_pages;
    	$args = array(
    	'base' => add_query_arg( 'cpage', '%#%' ),
    	'format' => '',
    	'total' => $max_page,
    	'current' => $page,
    	'echo' => true,
    	'add_fragment' => '#comments'
    					
    );
    	paginate_comments_links( $args ); ?>
    Moderator espiat

    (@espiat)

    Beitrag als gelöst markiert.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „paginate_comments_links funktioniert nicht“ ist für neue Antworten geschlossen.