/ / Dlaczego w tym szablonie WordPress nie wyświetlają się linki do stron? - php, wordpress, pagination

Dlaczego w tym szablonie WordPress nie wyświetlają się linki do stronicowania? - php, wordpress, paginacja

Mam problem ze zrozumieniem, a nawetdiagnozowanie, dlaczego paginacja nie jest wyświetlana w moim pliku home.php, który utworzyłem w motywie dwudziestu siedemdziesięciu dzieci. Mam 3 posty na blogu i chcę, aby wyświetlał się tylko jeden, z paginacją na dole.

Używam WordPress 4.7.2 i zgodnie z to artykuł Powinienem używać funkcji_posts_pagination () do wyświetlania stronicowania dla moich postów, ale nic się nie pojawia. Skonfigurowałem niestandardowe zapytanie zgodnie z opisem tutaj (przekazując parametry jako tablicę zamiast ciągu zapytania):

$paged = ( get_query_var( "paged" ) ) ? get_query_var( "paged" ) : 1;

$query = new WP_Query( array( "posts_per_page" => 1, "paged" => $paged ) );

Są 3 posty, a jeśli ustawię to na zapytanie, zobaczę wszystkie trzy na mojej stronie home.php:

$query = new WP_Query( array( "posts_per_page" => 3, "paged" => $paged ) );

Gdy ustawię „posts_per_page” na 1, a następnie zadzwonięthe_posts_pagination (), widzę tylko pierwszy post i brak stronicowania. Nie rozumiem, dlaczego nie pojawia się podział na strony, ponieważ jest więcej stron do wyświetlenia. Jestem jednak naprawdę nowy w WordPress, więc jestem pewien, że brakuje mi czegoś oczywistego.

Oto mój pełny kod w celach informacyjnych:

<?php

get_header();

$paged = ( get_query_var( "paged" ) ) ? get_query_var( "paged" ) : 1;

$query = new WP_Query( array( "posts_per_page" => 1, "paged" => $paged ) );

?>

<div class="wrap">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">

<?php

if ( $query->have_posts() ) :

/* Start the Loop */
while ( $query->have_posts() ) : $query->the_post();

the_title("<h1>", "</h1>");
the_content();

endwhile;

the_posts_pagination();

else :

get_template_part( "template-parts/post/content", "none" );

endif;

?>

</main><!-- #main -->
</div><!-- #primary -->
</div><!-- .wrap -->

<?php get_footer();

EDYCJA PO ODPOWIEDZI NA PYTANIE

OK, więc wygląda na to, że mimo że ustawiłem „post_per_page”, który chciałem tutaj wyświetlić:

$query = new WP_Query( array( "posts_per_page" => 1, "paged" => $paged ) );

Wordpress nadal polegał na ustawieniach w Pulpit nawigacyjny-> Ustawienia-> Czytanie-> Strony bloga wyświetlają się co najwyżej aby ustalić paginację, więc musiałem tam wejść i to też ustawić. Nadal nie mogłem sprawić, by the_posts_pagination działało poprawnie, ale tak się stało:

previous_posts_link( " << Newer Entries " );
next_posts_link( " Older Entries >> ", $query->max_num_pages);

Odpowiedzi:

1 dla odpowiedzi № 1

the_posts_pagination() nie rozpoznaje nowego zapytania, ale odczytuje z globalnego pliku wp_query zapisanego w $GLOBALS["wp_query"].

The Strony blogów wyświetlają się co najwyżej ustawienie w obszarze Ustawienia> Czytanie w panelu administracyjnym jest używane jako posts_per_page tutaj.

Można znaleźć różne sposoby modyfikacji domyślnego zapytania w Ten artykuł.