Tag template WordPress yang cukup luas memungkinkan kita untuk sepenuhnya menyesuaikan website tanpa perlu plugin pihak ketiga. Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana membuat halaman kustom yang menampilkan daftar pengguna yang menggunakan satu set tag template.
Selain itu, kami juga akan menerapkan pagination untuk menampilkan para pengguna dalam jumlah halaman. Seperti halaman yang mungkin diperlukan untuk situs web tertentu.
Pertama, membuat file PHP baru di direktori tema yang Anda aktifkan. Dalam contoh ini, menggunakan tema TwentyTwelve. Tambahkan tag komentar berikut untuk mendaftar sebagai template halaman . lihat plaincopy ke clipboardprint?
<?php
/*
Template Name: User Page
*/
Dalam editor halaman WordPress , mengaturnya sebagai template untuk halaman penulis Anda.
Query dan Formula
Mari kita atur formula. Buka template baru kita buat dalam editor kode.
Pertama, kita perlu menentukan jumlah pengguna yang ingin kita tunjukkan per halaman. Kita menetapkan nomor ini dalam sebuah variabel bernama $number. Setiap kali Anda ingin mengubah jumlah pengguna yang ditampilkan pada halaman,ubah nilai dalam variabel ini. lihat plaincopy ke clipboardprint?
$number = 10;
Tambahkan potongan kode berikut untuk menentukan nomor pagination saat ini.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
Kemudian, dengan menggunakan kode berikut, kita menghitung jumlah pengguna yang harus melewati di halaman (offset) - ini akan berlaku pada halaman kedua dan seterusnya. lihat plaincopy ke clipboardprint?
$offset = ($paged - 1) * $number;
Kita perlu untuk mendapatkan pengguna yang terdaftar di website kita, dan menghitung jumlah menggunakan hitungan PHP ( ) fungsi, sebagai berikut. lihat plaincopy ke clipboardprint ?
$users = get_users();
$total_users = count($users);
Kita juga menghitung jumlah total tanya pengguna per spesifikasi, yang meliputi jumlah pengguna yang akan ditampilkan, dan nomor offset. lihat plaincopy ke clipboardprint ?
$query = get_users('&offset='.$offset.'&number='.$number);
Kemudian, kita menghitung jumlah halaman yang harus dibuat. Kita bisa menghitungnya berdasarkan jumlah pengguna yang terdaftar dan jumlah pengguna yang ditampilkan per halaman, sebagai berikut. lihat plaincopy ke clipboardprint ?
$total_pages = intval($total_users / $number) + 1;
Menampilkan User
Seperti yang telah kita tentukan rumus yang diperlukan, sekarang kita akan menampilkan hasil pada halaman.
Dalam contoh ini, kita akan menampilkan beberapa hal dari pengguna: avatar, nama lengkap, dan biografi singkat (deskripsi). Informasi tersebut dapat diambil masing-masing menggunakan tag template berikut: get_avatar, dan get_the_author_meta lihat plaincopy ke clipboardprint ?
echo '<ul id="users">';
foreach($query as $q) { ?>
<li class="user clearfix">
<div class="user-avatar">
<?php echo get_avatar( $q->ID, 80 ); ?>
</div>
<div class="user-data">
<h4 class="user-name">
<a href="<?php echo get_author_posts_url($q->ID);?>">
<?php echo get_the_author_meta('display_name', $q->ID);?>
</a>
</h4>
<?php if (get_the_author_meta('description', $q->ID) != '') : ?>
<p><?php echo get_the_author_meta('description', $q->ID); ?></p>
<?php endif; ?>
</div>
</li>
<?php }
echo '</ul>';
Membuat Pagination
Tentu saja kita tidak ingin menampilkan ratusan pengguna dalam satu halaman. Jadi, kita akan membuat link pagination dan membagi hasil dalam beberapa halaman. Selain itu, kita hanya akan menampilkan pagination jika jumlah total pengguna yang terdaftar lebih besar dari pengguna yang ditampilkan per halaman.
Untungnya, WordPress memiliki tag template yang memungkinkan kita untuk membuat pagination dengan mudah, yang disebut paginate_links ( ). lihat plaincopy ke clipboardprint ?
<?php
if ($total_users > $total_query) {
echo '<div id="pagination" class="clearfix">';
echo '<span class="pages">Pages:</span>';
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%/',
'current' => $current_page,
'total' => $total_pages
'prev_next' => false,
'type' => 'list',
));
echo '</div>';
}
?>
Semua Code
Untuk jalan pintas, berikut ini adalah semua kode yang dapat Anda copy dan paste ke dalam template halaman Anda. lihat plaincopy ke clipboardprint ?
<?php
$number = 10;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$offset = ($paged - 1) * $number;
$users = get_users();
$query = get_users('&offset='.$offset.'&number='.$number);
$total_users = count($users);
$total_query = count($query);
$total_pages = intval($total_users / $number) + 1;
echo '<ul id="users">';
foreach($query as $q) { ?>
<li class="user clearfix">
<div class="user-avatar">
<?php echo get_avatar( $q->ID, 80 ); ?>
</div>
<div class="user-data">
<h4 class="user-name">
<a href="<?php echo get_author_posts_url($q->ID);?>">
<?php echo get_the_author_meta('display_name', $q->ID);?>
</a>
</h4>
<?php if (get_the_author_meta('description', $q->ID) != '') : ?>
<p><?php echo get_the_author_meta('description', $q->ID); ?></p>
<?php endif; ?>
</div>
</li>
<?php }
echo '</ul>';
?>
<?php
if ($total_users > $total_query) {
echo '<div id="pagination" class="clearfix">';
echo '<span class="pages">Pages:</span>';
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => 'page/%#%/',
'current' => $current_page,
'total' => $total_pages,
'prev_next' => false,
'type' => 'list',
));
echo '</div>';
?>
Dengan beberapa tweak dalam CSS, Anda dapat membuat halaman terlihat jauh lebih baik.
Tips dari hongkiat.com
Cara Membuat Tampilan Daftar Penulis dengan Pagination