چگونه صفحه بندی را به قالب وردپرس خود اضافه کنید
چگونه صفحه بندی را به قالب وردپرس خود اضافه کنید
اگر به دنبال اضافه کردن پشتیبانی صفحه بندی به قالب وردپرس خود با اعداد جالب به جای پست پیش فرض بعدی و قبلی هستید، می توانید این کار را با استفاده از PageNavi، با این حال، من ترجیح میدهم صفحهبندی را به صورت دستی به طرحهای زمینهام اضافه کنم تا مردم این کار را انجام ندهند. مجبور نیستید به دنبال یک افزونه بگردید. همچنین به حفظ سرعت سایت بدون تمام اسکریپتهای خارجی و CSS کمک میکند.
خوشبختانه یک عملکرد عالی در وردپرس وجود دارد به نام “paginate_links” که در وردپرس 2.1 اضافه شده است و به شما این امکان را میدهد که یک پیمایش سبک صفحهبندی شده برای هر درخواستی در سایت خود ایجاد کنید. در اینجا یک آموزش سریع برای اضافه کردن یک پیمایش صفحه ساده به تم شما وجود دارد که دقیقاً مانند صفحه بندی در Total WordPressTheme من است.
پی اچ پی صفحه بندی
به سادگی کد زیر را در انتهای فایل functions.php خود (یا هر فایلی در طرح زمینه خود که می خواهید در آن نگهداری کنید) اضافه کنید.
// صفحهبندی شمارهدار
if ( !function_exists( 'wpex_pagination' ) ) {
تابع wpex_pagination() {
$prev_arrow = is_rtl() ? '→' : '←';
$next_arrow = is_rtl() ? '←' : '→';
جهانی $wp_query;
$total = $wp_query->max_num_pages;
بزرگ $ = 999999999; // به یک عدد صحیح بعید نیاز دارد
if ($total > 1 ) {
if(!$current_page = get_query_var('paged') )
$current_page = 1;
if( get_option('permalink_structure') ) {
$format = 'page/%#%/';
}دیگر {
$format = '&paged=%#%';
}
echo pagenate_links(array(
'base' => str_replace($big، '%#%', esc_url( get_pagenum_link( $big ) ) ,
'format' => $format،
'current' => max( 1, get_query_var('paged') )
'total' => $total،
'mid_size' => 3،
'type' => 'فهرست',
'prev_text' => $prev_arrow،
'next_text' => $next_arrow،
)))
}
}
}
مشاهده همه پارامترها
CSS صفحه بندی
CSS زیر را کپی کرده و در فایل style.css خود جایگذاری کنید.
ul.page-numbers {
list-style: هیچکدام;
حاشیه: 0;
}
.page-numbers:after {
محتوا: "."؛
نمایش: بلوک؛
روشن: هر دو
دید: پنهان؛
ارتفاع خط: 0;
ارتفاع: 0;
}
ul.page-numbers li {
نمایش: بلوک؛
شناور به سمت چپ؛
حاشیه: 0 4px 4px 0;
text-align: center;
}
.page-numbers a,
.page-numbers span {
ارتفاع خط: 1.6em;
نمایش: بلوک؛
padding: 0 6px;
ارتفاع: 18 پیکسل؛
ارتفاع خط: 18 پیکسل.
اندازه فونت: 12px;
text-decoration: هیچ;
فونت-وزن: 400;
مکان نما: اشاره گر
حاشیه: 1px جامد #ddd;
رنگ: #888;
}
.page-numbers a span { padding: 0 }
.page-numbers a:hover,
.page-numbers.current،
.page-numbers.current:hover {
رنگ: #000;
پس زمینه: #f7f7f7;
text-decoration: هیچ;
}
.page-numbers:hover { text-decoration: هیچ }
افزودن تابع صفحه بندی به طرح زمینه
برای فراخوانی تابع صفحهبندی بسیار ساده است. تنها کاری که باید انجام دهید این است که کد زیر را به فایلهای تم خود اضافه کنید، جایی که میخواهید هر نوع صفحهبندی را نشان دهید. رایج ترین آنها index.php، home.php، category.php، tags.php، archive.php و search.php شما هستند. اما اگر الگوهای صفحه سفارشی با پشتیبانی صفحهبندی دارید، میخواهید آنها را اینجا اضافه کنید.
صفحه بندی پیش فرض را با موارد زیر جایگزین کنید (معمولاً جایی بعد از endif قرار دارد):
پرسشهای سفارشی؟
اگر با استفاده از WP_Query یک پرس و جو سفارشی ایجاد می کنید، این تابع کار نمی کند مگر اینکه پرس و جو خود را در متغیر $wp_query تعریف کرده باشید (که بد است، این کار را نکنید). برای رفع آن، من به طور کلی پرس و جوهای جدیدی مانند زیر ایجاد می کنم:
$wpex_query = جدید WP_Query( $args )؛
به این ترتیب می توانم تابع صفحه بندی اصلی را تغییر دهم تا در هنگام ایجاد صفحه بندی به دنبال متغیر بگردم، به عنوان مثال (ویرایش اولین قطعه):
جهانی $wp_query, $wpex_query;
if ($wpex_query ) {
$total = $wpex_query->max_num_pages;
}دیگر {
$total = $wp_query->max_num_pages;
}
بهروزرسانی: در این مثال من متغیر سراسری را بررسی میکنم… با این حال میتوانید متغیر query را مستقیماً به تابع wpex_pagination ارسال کنید که احتمالاً انتخاب بهتری است 😉