صفحهبندی در وردپرس زمانی اتفاق میافتد که محتوای قابل مشاهده شما از حد مجاز تعیین شده فراتر رود. در این صورت کاربر پس از مشاهده تعداد محتوای مشخصشده، میبایست بر روی برگه بعدی کلیک کند تا بتواند محتواهای بیشتری را مشاهده کند. در این نوشته قصد داریم، ایجاد صفحه بندی در وردپرس را به شما آموزش دهیم.
آنچه در این مقاله میخوانید
صفحه بندی وردپرس (Pagination) چیست؟
صفحه بندی در وردپرس، ویژگی است که محتوای سایت (نظیر نوشتهها، برگهها، محصولات و…) را به برگههای جداگانه تقسیم میکند. بازدیدکنندگان میتوانند با استفاده از دکمههای جدیدتر یا قدیمیتر برای پیمایش بین برگهها استفاده کنند. برخی از صفحهبندیها دارای شماره بوده که کاربران میتوانند با کلیک بر روی شماره برگه مورد نظر، به آن هدایت شوند.
ما در این مقاله قصد داریم تا شما را با نحوه ایجاد صفحهبندی در وردپرس به دو روش آشنا کنیم.
- ایجاد صفحه بندی در وردپرس با نصب افزونه
- ایجاد صفحه بندی در وردپرس با کدنویسی
آموزش ایجاد صفحهبندی در وردپرس
برای آنکه محتوای سایت شما صفحهبندی شود و کاربر بتواند صفحه به صفحه (برگه به برگه) محتواها را مرور کند، شما میبایست در پیشخوان و در بخش “تنظیمات » خواندن”، مقدار “بیشترین تعداد نوشتهها در هر برگه وبلاگ” را تعیین کرده باشید.
در این صورت اگر تعداد محتوای شما بیشتر از مقدار تعیین شده باشد، وردپرس به صورت خودکار صفحهبندی را برای محتوای شما ایجاد خواهد کرد. البته صفحهبندی پیشفرض وردپرس، شامل دو پیوند “نوشتههای قدیمیتر” و “نوشتههای جدیدتر” میباشد.
افزونههای صفحهبندی وردپرس
به منظور نمایش صفحهبندی در وردپرس و سفارشیسازی آن، افزونههای مختلفی ارائه شدهاند که سه تا از برترینهای آن را به شما معرفی خواهیم کرد.
۱- WP-PageNavi
افزونه WP-PageNavi محبوبترین و پرکاربردترین افزونه صفحهبندی وردپرس است. این افزونه، پیوندهای “نوشتههای قدیمیتر” و “نوشتههای جدیدتر” را با پیمایش زیبا و شماره گذاری شده جایگزین میکند.
استفاده از این افزونه بسیار آسان است. هنگامی که آن را فعال کنید، میتوانید با مراجعه به بخش تنظیمات > PageNavi این افزونه را مطابق با نیازهای وبسایت خود سفارشیسازی نمایید.
۲- WP-Paginate
یکی دیگر از افزونههای برتر صفحهبندی وردپرس، افزونه WP-Paginate میباشد. این افزونه منبع باز، چندین سبک صفحهبندی و انتخاب رنگ را به همراه توانایی افزودن CSS سفارشی برای پیوندهای صفحهبندی از طریق تنظیمات فراهم میکند.
این افزونه از نسخه ۱.۱ به بعد، صفحهبندی دیدگاهها را نیز پشتیبانی میکند و دیدگاههای هر نوشته را میتوان با استفاده از آن صفحهبندی نمود.
۳- Pagination by BestWebSoft
افزونه Pagination by BestWebSoft، افزونهای ساده و کارآمد برای ایجاد صفحهبندی در وردپرس میباشد. این افزونه به شما این امکان را میدهد تا به صورت خودکار بتوانید صفحهبندی را به صفحه اصلی، وبلاگ، بایگانی یا نتایج جستجوی خود اضافه کرده و یا حتی مکان نمایش آن را تغییر دهید. همچنین با استفاده از این افزونه میتوانید ظاهر سفارشی بر روی صفحهبندی اعمال کنید.
این افزونه در دو نسخه رایگان و پولی ارائه میشود و برای استفاده از تمامی امکانات افزونه میبایست نسخه ویژه آن را خریداری نمایید.
ایجاد صفحهبندی در وردپرس با برنامهنویسی
در بخش قبلی افزونههای ایجاد صفحهبندی در وردپرس را بررسی کردیم. در صورتی که تمایل دارید تا صفحهبندی را بدون نصب افزونه و با کدنویسی انجام دهید، تابع زیر این کار را برای شما انجام خواهد داد.
شما با قراردادن قطعه کد زیر در فایل functions.php و فراخوانی آن میتوانید محتواهای خود را صفحهبندی کنید. همچنین میتوانید این قطعه کد را به افزونه وردپرس تبدیل کنید تا نگران تغییرات functions.php پس از بهروزرسانی پوسته نباشید.
/**
* @snippet Tida Pagination: Buttons & Numeric Pagination For WordPress
* @author Rasool Vahdati
* @testedwith WordPress
*/
function tida_pagination($query = null, $paginated = 'numeric')
{
if ($query == null) {
global $wp_query;
$query = $wp_query;
}
$page = $query->query_vars['paged'];
$pages = $query->max_num_pages;
$paged = get_query_var('paged') ? get_query_var('paged') : ( get_query_var('page') ? get_query_var('page') : 1 );
if ($page == 0) {
$page = 1;
}
$output = '';
if ($pages > 1) {
if ($paginated == 'buttons') {
$output .= '<nav class="vl-pagination-buttons">';
if ($page + 1 <= $pages) {
$output .= '<a class="prev-page" href="' . get_pagenum_link($page + 1) . '">«<span>' . esc_html__('Previous Page', 'pixi') . '</span></a>';
} else {
$output .= '<span class="prev-page inactive">«<span>' . esc_html__('Previous Page', 'pixi') . '</span></span>';
}
if ($page - 1 >= 1) {
$output .= '<a class="next-page" href="' . get_pagenum_link($page - 1) . '"><span>' . esc_html__('Next Page', 'pixi') . '</span>»</a>';
} else {
$output .= '<span class="next-page inactive"><span>' . esc_html__('Next Page', 'pixi') . '</span>»</span>';
}
$output .= '</nav>';
}
if ($paginated == 'numeric') {
$numeric_links = paginate_links(array(
'add_args' => '',
'current' => $paged,
'total' => $pages,
'prev_text' => '«',
'next_text' => '»'
));
$output .= '<div class="row"><nav class="td-pagination td-pagination-numeric">';
$output .= $numeric_links;
$output .= '</nav></div>';
}
}
return apply_filters('tida_pagination', $output);
}
تابع بالا دو آرگومان به عنوان پارامتر ورودی دریافت میکند و خروجی آن پیوندهای صفحهبندی شده میباشد. آرگومان اول کوئری و آرگومان دوم نوع صفحهبندی میباشد.
اگر این تابع در حلقه عمومی استفاده شود، میبایست مقدار اول برابر null ارسال شده و در صورتی که این تابع در کوئری اختصاصی قرار است فراخوانی شود، بهتر است مقدار اول برابر query$ اختصاصی باشد.
در صورتی که بخواهید نمایش صفحهبندی فقط شامل مقادیر “نوشتههای قبلی” و “نوشتههای بعدی” باشند، آرگومان دوم را برابر “buttons” قرار دهید. همچنین در صورتی که نیاز است تا نمایش صفحهبندی به صورت شماره صفحات به همراه لینک قبل و بعد باشد، کافی است مقدار آرگومان دوم را برابر “numeric” قرار دهید.
tida_pagination( $query , 'buttons' ); // show text pages link (previous & next) in pagination
tida_pagination( $query, 'numeric' ); // show numeric pages with previous & next links in pagination
نتیجهگیری
در مقاله بالا، نحوه ایجاد صفحهبندی در وردپرس توضیح داده شد. همانطور که گفته شد این کار هم با استفاده از افزونه و هم به صورت کد نویسی قابل انجام است. در صورتی که توسعه دهنده وردپرس هستید، پیشنهاد ما استفاده از روش کد نویسی میباشد چون در این حالت، شما به راحتی میتوانید کد را براساس سلیقه خود سفارشیسازی کنید.
سؤالات متداول
صفحهبندی در وردپرس با هر دو حالت مشکلی ندارد. پیشنهاد ما برای توسعه دهندگان وردپرس استفاده از روش کدنویسی میباشد.
بله، همه افزونههای معرفی شده که قابلیت ایجاد صفحه بندی در وردپرس را دارند، رایگان بوده و از مخزن وردپرس قابل دریافت هستند.
این کار به آسانی قابل انجام است. فقط باید مقادیر prev_text و next_text را به متن یا آیکون دلخواه خود تغییر دهید.
مقاله جذابی بود. ممنون ازتون…