Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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();