Postingan lainnya
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
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> <?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 /** * 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('paged') ) ? get_query_var('paged') : 1;
$ashole_query = new WP_Query( array(
'posts_per_page' =&gt; 2,
'paged' =&gt; $paged
) );
?>
<?php if ( $ashole_query->have_posts() ) : ?>
<?php while ( $ashole_query->have_posts() ) : $ashole_query->the_post(); ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a><br />
<?php echo get_the_category_list(', '); ?>
<?php // pastikan menggunakan get_the_time untuk custom query echo get_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; wp_reset_postdata();
/* Previous/next page navigation. */
/**the_posts_pagination( array(
'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;',
'before_page_number' =&gt; '&lt;span class="meta-nav screen-reader-text"&gt;' . __( 'Page', 'dan' ) . '&lt;/span&gt;',
) );**/ #maka paginationnya seperti ini # cek apakah memiliki pages lebih dari satu if ( $ashole_query->max_num_pages > 1 ) : $nav = paginate_links( array( 'current' => max( 1, get_query_var('paged') ), 'total' => $ashole_query->max_num_pages, '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>', ) ); if ( $nav ) { ?> <div class="posts-nav section"> <div class="container clearfix"> <?php echo $nav; ?> </div> </div>
&lt;?php }
endif;
?>
<?php endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer(); </pre>
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();