pagination tidak berfungsi di template page wordpress

jadi saya buat sebuah page di wordpress dan menggunakan fasilitas template , pada codingnya saya ingin menampilkan post , penampilan postnya berhasil tetapi pagination-nya tidak berfungsi ,saat saya klik lanjutkan , tetap menampilkan post yang sama , mohon perbaikannya ,

code saya :


<?php

/**
 * Template Name: ashole
 *
 * @link https://codex.wordpress.org/Template_Hierarchy
 * @package Dan
 */

get_header(); ?>

<div id="primary" class="content-area">

<main id="main" class="site-main" role="main">

<?php query_posts("showposts=2") ?>

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

<?php while ( have_posts() ) : the_post(); ?>

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a><br />

<?php echo get_the_category_list(', '); ?>

<?php the_time('d/m/Y g:i:s A'); ?><br />

<img src="<?php $img=wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'large'); echo $img[0]; ?>"/><br />

<?php the_excerpt(); ?> <br />

<?php endwhile;

/* Previous/next page navigation. */

  the_posts_pagination( array(

     'prev_text'         => '<span class="fas fa-angle-double-left" aria-hidden="true"></span> ' . __( 'Previous page', 'dan' ),

     'next_text'         => __( 'Next page', 'dan' ) . ' <span class="fas fa-angle-double-right" aria-hidden="true"></span>',

     'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'dan' ) . '</span>',

  ) );

  ?>

<?php endif; ?>

   </main><!-- #main -->

</div><!-- #primary -->

<?php

get_sidebar();

get_footer();

terimakasih

avatar yayayayayayaya
@yayayayayayaya

47 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

3 Jawaban:

Jawaban Terpilih

Halo.

the_posts_pagination hanya bekerja pada main_query, dan mas sedang menggunakan jenis modifikasi query menggunakan fungsi query_posts(); maka the_posts_pagination otomatis tidak akan bisa bekerja dengan benar.

Saya mengganti kodennya menggunakan custom query new WP_Query dan paginationnnya menggunakan paginate_links

<pre> &lt;?php

/**

  • Template Name: ashole
  • @link https://codex.wordpress.org/Template_Hierarchy
  • @package Dan */

get_header(); ?&gt;

&lt;div id="primary" class="content-area"&gt;

&lt;main id="main" class="site-main" role="main"&gt;

&lt;?php /** * the_posts_pagination tidak akan * Bekerka dengan fungsi query_posts * saya sayankan pakai custom query saja * new WP_Query(); * parameternya sama dengan query_posts() */ # query_posts("showposts=2");

$paged = ( get_query_var(&#039;paged&#039;) ) ? get_query_var(&#039;paged&#039;) : 1;
$ashole_query = new WP_Query( array(
    &#039;posts_per_page&#039;    =&amp;gt; 2,
    &#039;paged&#039;             =&amp;gt; $paged
) );

?&gt;

&lt;?php if ( $ashole_query-&gt;have_posts() ) : ?&gt;

&lt;?php while ( $ashole_query-&gt;have_posts() ) : $ashole_query-&gt;the_post(); ?&gt;

&lt;a href="&lt;?php the_permalink() ?&gt;" title="&lt;?php the_title(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;br /&gt;

&lt;?php echo get_the_category_list(', '); ?&gt;

&lt;?php // pastikan menggunakan get_the_time untuk custom query echo get_the_time('d/m/Y g:i:s A'); ?&gt;&lt;br /&gt;

&lt;img src="&lt;?php $img=wp_get_attachment_image_src(get_post_thumbnail_id($post-&gt;ID), 'large'); echo $img[0]; ?&gt;"/&gt;&lt;br /&gt;

&lt;?php the_excerpt(); ?&gt; &lt;br /&gt;

&lt;?php endwhile; wp_reset_postdata();

/* Previous/next page navigation. */

/**the_posts_pagination( array(

 &#039;prev_text&#039;         =&amp;gt; &#039;&amp;lt;span class=&quot;fas fa-angle-double-left&quot; aria-hidden=&quot;true&quot;&amp;gt;&amp;lt;/span&amp;gt; &#039; . __( &#039;Previous page&#039;, &#039;dan&#039; ),

 &#039;next_text&#039;         =&amp;gt; __( &#039;Next page&#039;, &#039;dan&#039; ) . &#039; &amp;lt;span class=&quot;fas fa-angle-double-right&quot; aria-hidden=&quot;true&quot;&amp;gt;&amp;lt;/span&amp;gt;&#039;,

 &#039;before_page_number&#039; =&amp;gt; &#039;&amp;lt;span class=&quot;meta-nav screen-reader-text&quot;&amp;gt;&#039; . __( &#039;Page&#039;, &#039;dan&#039; ) . &#039;&amp;lt;/span&amp;gt;&#039;,

) );**/ #maka paginationnya seperti ini # cek apakah memiliki pages lebih dari satu if ( $ashole_query-&gt;max_num_pages &gt; 1 ) : $nav = paginate_links( array( 'current' =&gt; max( 1, get_query_var('paged') ), 'total' =&gt; $ashole_query-&gt;max_num_pages, 'prev_text' =&gt; '&lt;span class="fas fa-angle-double-left" aria-hidden="true"&gt;&lt;/span&gt; ' . __( 'Previous page', 'dan' ), 'next_text' =&gt; __( 'Next page', 'dan' ) . ' &lt;span class="fas fa-angle-double-right" aria-hidden="true"&gt;&lt;/span&gt;', ) ); if ( $nav ) { ?&gt; &lt;div class="posts-nav section"&gt; &lt;div class="container clearfix"&gt; &lt;?php echo $nav; ?&gt; &lt;/div&gt; &lt;/div&gt;

&amp;lt;?php } 
endif;

?&gt;

&lt;?php endif; ?&gt;

&lt;/main&gt;&lt;!-- #main --&gt;

&lt;/div&gt;&lt;!-- #primary --&gt;

&lt;?php

get_sidebar();

get_footer(); </pre>

avatar tompradana
@tompradana

134 Kontribusi 95 Poin

Dipost 5 tahun yang lalu

Tambahan, jika mas menggunakan query_posts, maka pastikan querynya direset setelah looping, menggunakan kode wp_reset_query();

Jika mengggunakan custom query new WP_Query(); pastikan mas mereset querynya seperti ini wp_reset_postdata();

avatar tompradana
@tompradana

134 Kontribusi 95 Poin

Dipost 5 tahun yang lalu

terimakasih mas @tompradana

avatar yayayayayayaya
@yayayayayayaya

47 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban