5 Cuplikan Kode Pagination WordPress dengan Contoh [Sederhana hingga Tingkat Lanjut]
Diterbitkan: 2020-02-03Jika Anda mencari kode pagination terbaik di WordPress dengan contoh spesifik, Anda akan menemukan contoh potongan kode pagination yang dibagikan di posting ini sangat berguna. Anda dapat menerapkan kode pagination ini di tema WordPress atau di plugin WordPress khusus yang memerlukan pagination posting. Biarkan saya memotong pengejaran dan membagikan cuplikan kode pagination favorit saya:
#1) Loop WordPress dengan Kode Pagination Sederhana
Jika Anda ingin menambahkan pagination dalam loop WordPress, Anda dapat menggunakan kode pagination berikutnya dan sebelumnya di bawah ini:
<?php if ( have_posts() ) : ?> <!-- Tambahkan fungsi pagination di sini. --> <!-- Mulai dari loop utama. --> <?php while ( have_posts() ) : the_post(); ?> <!-- sisa loop utama tema Anda --> <?php akhir; ?> <!-- Akhir dari loop utama --> <!-- Tambahkan fungsi pagination di sini. --> <div class="nav-previous alignleft"><?php before_posts_link( 'Postingan lama' ); ?></div> <div class="nav-next alignright"><?php next_posts_link( 'Postingan baru' ); ?></div> <?php lain : ?> <p><?php _e('Maaf, tidak ada kiriman yang sesuai dengan kriteria Anda.'); ?></p> <?php endif; ?>
#2) Pagination Numerik WordPress
Opsi pagination WordPress hebat lainnya adalah dengan menggunakan pagination numerik yang menambahkan angka ke posting dan mengelompokkan posting berdasarkan nomor. Misalnya, Anda dapat menampilkan 5 postingan dalam satu halaman. Ini adalah kode pagination di WordPress untuk pagination numerik :
<?php #LANGKAH 1: Buat fungsi pagination WordPress numerik function njengah_numeric_pagination() { jika( is_singular() ) kembali; global $wp_query; /** Hentikan eksekusi jika hanya ada 1 halaman */ if( $wp_query->max_num_pages <= 1 ) kembali; $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1; $max = intval( $wp_query->max_num_pages ); /** Menambahkan halaman saat ini ke array */ jika ( $paged >= 1 ) $link[] = $halaman; /** Menambahkan halaman di sekitar halaman saat ini ke array */ if ( $halaman >= 3 ) { $link[] = $paged - 1; $link[] = $paged - 2; } if ( ( $paged + 2 ) <= $max ) { $link[] = $halaman + 2; $link[] = $halaman + 1; } echo '<div class="navigation"><ul>' . "\n"; /** Tautan Posting Sebelumnya */ jika ( get_previous_posts_link() ) printf( '<li>%s</li>' . "\n", get_previous_posts_link() ); /** Tautan ke halaman pertama, ditambah elips jika perlu */ if ( ! in_array( 1, $links ) ) { $class = 1 == $paged ? ' kelas="aktif"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' ); jika ( ! in_array( 2, $links ) ) echo '<li>…</li>'; } /** Tautan ke halaman saat ini, ditambah 2 halaman di kedua arah jika perlu */ sort( $link ); foreach ( (array) $link sebagai $link ) { $class = $paged == $link ? ' kelas="aktif"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link ); } /** Tautan ke halaman terakhir, ditambah elips jika perlu */ if ( ! in_array( $max, $links ) ) { if ( ! in_array( $max - 1, $links ) ) gema '<li>…</li>' . "\n"; $class = $paged == $max ? ' kelas="aktif"' : ''; printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max ); } /** Tautan Pos Berikutnya */ jika ( get_next_posts_link() ) printf( '<li>%s</li>' . "\n", get_next_posts_link() ); gema '</ul></div>' . "\n"; } #LANGKAH 2: Tambahkan ke template menggunakan panggilan ini ke fungsi di atas njengah_numeric_pagination(); #LANGKAH 3: Gaya Pagination dengan tepat agar sesuai dengan gaya tema Anda /** Kelas CSS untuk Memberi Gaya Pagination*/ .navigasi di { } .navigasi ke{ }
# 3) Contoh Pagination WordPress Ajax
Jika Anda mencari kode pagination Ajax di WordPress, saya menemukan contoh di GitHub yang bekerja sangat baik dan kodenya dalam bentuk plugin. Saya telah menyesuaikannya untuk menjadikannya plugin untuk tutorial kami dan kodenya dapat disalin ke file dan disimpan dalam format zip dan diinstal sebagai plugin. Berikut ini adalah contoh kode pagination WordPress Ajax:
<?php /** * Nama Plugin: Njengah Ajax Pagination * URI Plugin: https://njengah.com * Deskripsi: Contoh pagination WordPress Ajax. * Versi: 1.0.0 * Penulis: Joe Njenga * Penulis URI: https://njengah.com * Lisensi: GPL-2.0+ * URI Lisensi: http://www.gnu.org/licenses/gpl-2.0.txt * Domain Teks: cs-pagination * Jalur Domain: /bahasa */ // Kredit - Casper Schultz kelas Njengah_Ajax_Pagination { dilindungi $num_per_page; fungsi publik __construct() { $ini->num_per_page = 5; $ini->init(); } fungsi yang dilindungi init() { add_action( 'init', array( $ini, 'add_rewrite_rule' ) ); add_filter( 'query_vars', array( $this, 'add_query_vars' ) ); add_action( 'parse_request', array( $this, 'parse_request' ) ); } /** * Parsing permintaan yang masuk dan hasilkan hasilnya. */ fungsi parse_request( $wp ) { if ( array_key_exists( 'cs-page', $wp->query_vars ) ) { $halaman = isset ( $wp->query_vars['cs-page'] ) ? $wp->query_vars['cs-page'] : 1; $args = array( 'post_type' => 'posting', 'post_per_page' => $this->num_per_page, 'paged' => $halaman, ); $query = new WP_Query( $args ); // Kita perlu mengetahui jumlah total postingan yang ditemukan. $values['total'] = $query->found_posts; // Dan per halaman. $values['per_page'] = $this->num_per_page; $nilai['posting'] = array(); // Mari kita hanya mengirim data yang kita butuhkan. while ( $query->have_posts() ) { $query->the_post(); $nilai['postingan'][] = array( 'ID' => get_the_ID(), 'judul' => get_the_title(), ); } wp_reset_postdata(); wp_send_json( $nilai ); } } /** * Tambahkan argumen kueri yang diperlukan. */ fungsi add_query_vars( $query_vars ) { $query_vars[] = 'cs-halaman'; kembalikan $query_vars; } /** * Menambahkan aturan penulisan ulang untuk pagination khusus kami sehingga kami dapat menghindari penggunaan admin-ajax. */ fungsi add_rewrite_rule() { add_rewrite_rule( '^cs-paginate/([0-9]+)/?', 'index.php?cs-page=$matches[1]', 'top' ); } /** * Hapus aturan penulisan ulang. */ fungsi statis instal() { flush_rewrite_rules(); } } function njengah_ajax_pagination_init() { new Njengah_Ajax_Pagination(); } njengah_ajax_pagination_init(); // Perlu menghapus aturan penulisan ulang saat aktivasi. register_activation_hook( __FILE__, array( 'Njengah_Ajax_Pagination', 'install' ) );
#4) Pagination WordPress untuk Jenis Posting Kustom
Untuk pagination jenis posting kustom, Anda perlu menggunakan WP_query untuk memeriksa jenis posting kustom dan dalam argumen, Anda meneruskan jenis posting kustom di post_type dan kemudian menggunakan kode pagination untuk membuat pagination WordPress untuk jenis posting kustom.
Berikut ini adalah kode yang harus Anda tambahkan ke functions.php dan ganti post_type dengan slug jenis posting kustom Anda masing-masing:
<?php /** * WordPress Pagination untuk Jenis Posting Kustom */ <?php $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ): 1; $args = array( 'post_type' => 'custom_post_type_name', 'posts_per_page' => 10, 'paged' => $paged ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ): $loop->the_post(); // Konten jenis posting khusus sementara; ?> <nav class="pagination"> <?php $besar = 999999999; echo paginate_links(array( 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ), 'format' => '?paged=%#%', 'saat ini' => max( 1, get_query_var('paged') ), 'total' => $loop->max_num_pages, 'prev_text' => '«', 'next_text' => '»' ) ); ?> </nav> <?php wp_reset_postdata(); ?>
#5 Kustom Query Pagination WordPress
Kode paginasi kueri kustom di WordPress menggunakan WP_query untuk mendapatkan postingan spesifik yang ingin kita paginasi dan kemudian menggabungkan hasil kueri dengan kode paginasi untuk menerapkan paginasi ke postingan tertentu yang kita pilih. Berikut ini adalah contoh pagination kueri kustom di WordPress.
<?php //Kueri Kustom $paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; $args = array( 'posts_per_page' => 5, 'category_name' => 'galeri', 'paged' => $paged, ); $the_query = new WP_Query( $args ); ?> <!-- loop dll.. --> <?php // paginasi $besar = 999999999; // membutuhkan bilangan bulat yang tidak mungkin echo paginate_links(array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'saat ini' => max( 1, get_query_var('paged') ), 'total' => $the_query->max_num_pages ) );
Kesimpulan
Dalam posting ini, kami telah menyoroti berbagai jenis pagination WordPress dan membagikan kode pagination khusus untuk digunakan untuk setiap kasus. Kode pagination di WordPress ini dapat ditambahkan ke tema atau plugin yang ada dan juga dapat ditambahkan ke WordPress sebagai plugin mandiri.