در وردپرس، شما بخشی برای نمایش شماره صفحات دارید. این صفحه بندی ها زمانی نمایش داده خواهند شد که تعداد نوشته های شما بیشتر از تعداد تعیین شده در تنظیمات وردپرس شما می باشد و این امر موجب مرتب سازی و صفحه بعدی صفحات و نوشته های شما خواهد شد.
برای انجام این کار، افزونه های مختلفی از جمله افزونه WP_PageNavi وجود دارد، اما در این مقاله، آموزش خواهیم داد که چگونه صفحه بندی وردپرس بدون افزونه داشته باشیم
خب شروع می کنیم
[star_list]
معرفی توابع لینک های صفحه بندی وردپرس
[/star_list]
paginate_links() ها در وردپرس شامل پارامترهایی در قالب آرایه است که در زیر معرفی شده اند:
این آرگومان ها امکان صفحه بعدی شماره ای سایت وردپرسی شما را فراهم می سازند
<?php $args = array( ‘base’ => ‘%_%’, ‘format’ => ‘?page=%#%’, ‘total’ => 1, ‘current’ => 0, ‘show_all’ => False, اگر مقدار این پارامتر True باشد, تعداد صفحات را در تمامی بخش ها نمایش خواهد داد. اگر تعداد صفحات شما کم است بهتر از مقدار True باشد ‘end_size’ => 1, تعداد صفحاتی که می خواهید در ابتدا و انتهای لیست نمایش یابد، به صورت پیشفرض دارای مقدار 1 است ‘mid_size’ => 2, تعداد صفحاتی که میخواهید در دو طرف صفحه جاری نمایش یابد. ‘prev_next’ => True, آیا تمایل به نمایش صفحات قبلی و بعدی در قالب عدد هستید؟ ‘prev_text’ => __(‘« Previous’), ‘next_text’ => __(‘Next »’), ‘type’ => ‘plain’, تعیین نوع مقدار بازگشتی. یکی از مقادیر ‘plain’, ‘array’ و ‘list’. را می تواند بپذیرد ‘add_args’ => False, ‘add_fragment’ => ” ); ?>
برای دریافت اطلاعات بیشتر درباره آرگومان ها می توانید به صفحه توابع وردپرس مراجعه نمایید.
[star_list]
چگونگی استفاده از صفحه بندی شماره ای
[/star_list]
کد زیر، یک نمونه از سایت وردپرس برای لینک های صفحه بندی است
<?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages ) ); ?>
قرار دادن کد PHP طولانی به طور یکجا و طولانی کار صحیحی نیست، در نتیجه ما کد را به طور بخش بخش برایتان قرار می دهیم تا درک راحت ترین نسبت به آموزش داشته باشید
در ابتدا کد زیر را در داخل فایل Functiond.php پوسته خود قرار دهید:
function wp_pagination() { global $wp_query; $big = 12345678; $page_format = paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, 'type' => 'array' ) ); if( is_array($page_format) ) { $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged'); echo '<div><ul>'; echo '<li><span>'. $paged . ' از ' . $wp_query->max_num_pages .'</span></li>'; foreach ( $page_format as $page ) { echo "<li>$page</li>"; } echo '</ul></div>'; } }
با استفاده از کد بالا، شما صفحه بندی شماره ای را به پوسته خود معرفی کردید. حال مرحله دوم در این آموزش، استایل دهی به صفحه بندی ها است
حال برای زیبا سازی، یک استایل در نظر گرفته ایم که برای شما نیز قرار دادیم:
/* آماده شده توسط مدرسه وردپرس */ .pagination { margin: 20px 0; } .pagination ul { display: inline-block; margin-left: 0; margin-bottom: 0; border-radius: 5px; } .pagination ul>li { display: inline; float:right;} .pagination ul>li:first-child>a, .pagination ul>li:first-child>span { border-right-width: 1px; border-radius: 0px 5px 5px 0px; } .pagination ul>li:last-child>a, .pagination ul>li:last-child>span { border-left-width: 1px; border-radius: 5px 0px 0px 5px; } .pagination ul>li>a, .pagination ul>li>span { float: left; padding: 4px 12px; line-height: 20px; text-decoration: none; background-color: #ffffff; border: 1px solid #dddddd; border-left-width: 0; }
خب استایل دهی صفحه بندی نیز به پایان رسید. در مرحله آخر ما می بایست این تابع را فراخوان کنیم، برای این کار کافیست جایی که می خواهید صفحه بندی نمایش یابد، کد زیر را قرار دهید:
<div class="pagination"> <?php wp_pagination(); ?> </div>
در نهایت شما باید چیزی شبیه به تصویر زیر داشته باشید
امیدوارم آموزش امروز برای شما مفید واقع شود.
موفق و موید باشید
سلام
نتونستم,خواهش کنم میشه اینکارو برام انجام بدین؟حرفه ای هستین واسه شما که کاری نداره.میکنید؟
سلام دوست من. تلاش خودتون رو کنید قطعا می توانید. بله من کمکتون می کنم
سلام همه چی درسته ولی فقط قسمت بعدی بعد از ۱ از ۲ میاد :
http://www.uplooder.net/img/image/26/0c3f0287d6b554b691009a1e684edc9b/1111.jpg
میشه قسمت فانکشن رو خط به خط توضیح بدید؟ ممنون می شم
سلام دوست من. اگر دقیقا طبق آموزش پیش رفته باشید طبق نمونه نمایش داده می شود. منظورتونو از قسمت فانکشن متوجه نشدم
با سلام
خوب تعداد مطالب شما همینقدره
هرچی تعداد بالا بره تعداد صفحات هم بالا میره
سلام خسته نباشید سوالی داشتم من همین کاری که بیان کردید رو انجام دادم از فایل functions وقتی استفاده می کنم داخل قالب وردپرسم مشکلی پیش میاد بخش header قالب حدود ۲۰ margin به سمت پایین میاد مشکل کجاست؟
سلام دوست عزیز. این مشکل نیست. احتمالا نوار مدیریت در بالا نشان داده میشه اما چون سایت کامل لود نشده جای اون خالیه و فکر می کنید که از بالا ۲۰ پیکسل حاشیه داره
دوست عزیز من کد شما رو گذاشتم تو سایتم حالاهمه چیبه هم خورد دیگه صفحه وردپرسم بالا نمیاد چیکار کنم
حتی دیگه صفحه ورودمم سفید شده
سلام مهدی جان. من سایت شما رو دیدم
شما کد رو جای مناسبی قرار نداده اید
اگر در انتهای فایل فانکشن شما ?> وجود دارد کد را قبل از آن قرار دهید
سلام!! خیلی ممنون
فقط ازکجا میشه بهش گفت که توی هر صفحه چند تا مطلب قرار بگیره؟؟
سلام. از طریق تنظیمات وردپرس – تنظیمات -> خواندن
سلام ….
عااااااااااااااااااااااااااااااالیییییییییییی بووووووووود….
نجاتم دادی .. ممنونم.
عالی.
خسته نباشید.
سلام ببخشید یه سئوال
یه مشکل بزرگ هست
اونم اینکه قالب من فایل style کدها رو قرار میدم
اما اعمال نمیکنه
سلام مهدی جان. لطفا آدرس سایتتو بفرست و اگر سایتتون آنلاین نیست فایل استایلو به ایمیل wpchool1@gmail.com بفرست
سلام احسان جان. همینطوری نمیشه مشکل رو تشخصی داد لطفا فایل فانکشنتو به آدرس wpschool1@gmail.com ایمیل کن
سلام، من توی قالبم هنوز از functions.php استفاده نکرده بودم!
برای استفاده از این اموزش فایل رو که میسازم، سایتم اصلا بالا نماید!
همه جاش از کار میوفته!
باید از توی هاست برم ادیت کنم برش دارم تا درست شه!
مشکل از کجاس؟
ممنون میشم راهنمایی کنید
سلام دوست عزیز
شما وقتی فایل رو میسازید و میگید سایت بالا نمیاد ، فایل wp-config.php رو باز کنید و WP_DEBUG = TRUE بزارید و صفحه رو رفرش کنید ببنید چه خطایی میده
خطا رو برای بنده بفرستید تا راهنماییتون کنم
سلام. مطلب جدید نمیذارید دیگه؟؟؟؟؟
سلام حسین جان. چرا میزارم به علت کمبود وقت یه کم دیر میشه
ممنون کار کرد، فقط تنظیمات “خواندن” باید تنظیم باشه که چه تعداد پست در هر صفحه می خوایم داشته باشیم.
سلام من این مراحل را انجام دادم اما صفحه سایتم سفید و صفحه ی ورد پرسم هم سفید شده و دیگه هیچی باز نمیشه حتی ویرایشگر قالب.
لطفا کمکم کنید…
سلام دوست عزیز. احتمالا کد رو در حای اشتباهی قرار دادید. از طریق هاستون کدی که اضافه کردید رو بردارید و در جای مناسب قرار بدید. دقت کنید که قبل از ?> باشد
سلام خسته نباشید
من یه مشکل واسم پیش اومده . هیچ کسی نیست که راهنماییم کنه . لطفا شما راهنمایی کنید
من صفحه بندی سایتم رو با هر روشی که انجام میدم . روی لوکال هاست برنامه (easy php) درست کار میکنه و نمایش
داده میشه . ولی روی هاست اصلا نمایش داده نمیشه
از افزونه های:
wp-pagenavi
wp-page-numbers
و انواع روش های بدون افزونه رو امتحان کردم . کاملا دقیق و اصولی
ولی روی هاست اصلا شماره صفحه بندی ها نمایش داده نمیشه(تنظیمات خواندن داخل مدیریت رو هم تغییر دادم ولی فایده نداشت)
ولی اکه داخل آدرس بار مرورگر شماره صفحه رو وارد کنم وارد اون صفحه میشه و کار میکنه
قالب سایتم رو خودم طراحی کردم . که اشکال از قالب نیست
حتی قالب های دیگه هم از اینترنت دانلود کردم و امتحان کردم که ببینم مشکل از قالب منه یا نه . که بازم کار نکرد و نمایش داده
نشد
قالب هایی که دانلود کردم و استفاده کردم واسه تست:
sahifa
jarida
۱۳Floor
Downloadha
و قالب های مشهور دیگه
ولی فایده نداشت
لطفا شما راهنمایی کنید مشکل از چیه
سلام دوست من. اگر سایتتون الان آنلاین هستش لینکش رو بدید چک کنم
ممنون از آموزش خوبتون. من یه سوال داشتم، اینکه من کد فراخوانی رو نمیدونم کجا باید قرار بدم
ممنون میشم راهنمایی کنید
سلام سما جان. کد فراخوانی رو باید جایی که میخوایی صفحه بندی نشون داده بشه قرار بدی. که البته این هم بستگی به قالبی داره که استفاده میکنی
مرسی خیلی عالی بود
سلام
خسته نباشید
من از چند تا کد دیگه و این کد تو سایتم استفاده کردم صفحه بندی انجام میشه ولی رو هر صفحه کلیک می کنم بر میگرده به صفحه اول
ممنون میشم راهنمایی کنید مشکل از کجاست …
سلام دوست عزیز. بهتره کدتونو واسم بفرستید تا بتونم راحت تر کمکتون کنم
سلام خیلی عالی بود مرسی
کاش کاش کاش این آمزش هارو در قالب ویدئو ارائه می کردین 🙁
به زودی تمامی مراحل ساخت قالب به صورت ویدئو در سایت قرار خواهد گرفت
با تشکر
سلام من میخواستم شماره صفحه سایتم مثل مال شما فارسی باشه مقدار پیشفرض انگلیسی یعنی اعداد انگلیسی نشون میده برای این که فارسی بش چطوری باید اینکارو بکنم؟ ممنون میشم جواب والمو بدین
در صورتی که از وردپرس فارسی استفاده می کنید ، افزونه وردپرس فارسی به صورت پیش فرض نصب شده و می تونید از طریق این افزونه اعداد رو فارسی کنید.
سلام دوست عزیر من از وردپرس فارسی استفاده میکنم ولی باز شماره های که نشون میده انگلیسی هستن ممنون میشم کمکمکنین که به فارسی تبدیلشون کنم باتشکر
ابتدا افزونه wp-jalali نصب کرده و سپس از قسمت تنظیمات افزونه “تبدیل اعداد به فارسی” را تیک بزنید
موفق باشید
خیلی ممنون ازتون کار کرد و اینکه خیلی کامل تره از بقیه
سلام و خسته نباشید
خیلی خوشحالیم که آموزش های مدرسه وردپرس مشکل شما رو حل کرده
موفق باشید
من کدهای فانکشن و فراخوانی رو میذارم و همه کارا رو دقیق و درست انجام میدم اما کلا نشون نمیده شماره بندی رو
اما وقتی فانکشن پانک میکنم به جای کد فراخوانی این کد رو میذارم
str_replace( $big, ‘%#%’, esc_url( get_pagenum_link( $big ) ) ),
‘format’ => ‘?paged=%#%’,
‘current’ => max( 1, get_query_var(‘paged’) ),
‘total’ => $wp_query->max_num_pages
) );
?>
نشون میده شماره بندی رو اما شماره ۲ یا بقیه شماره ها رو میزنم به جز شماره یک صفحه ۴۰۴ میاد چیکار باید بکنم
ابتدا ارور لاگ رو توی وردپرس فعال کنید و بعد با توجه به خطای ثبت شده توی لاگ وردپرس کدها رو اصلاح کنید:
http://wpschool.ir/%D8%AA%D9%86%D8%B8%DB%8C%D9%85-error-logs-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3/
عالی بود واقعا….
ممنون بابت آموزشتون 🙂
با سلام و تشکر از آموزش خوبتون
میخواستم بدونم آیا راهی وجود داره که در صفحه بندی فقط ۴ صفحه نمایش داده بشه و مابقی صفحات قدیمی نمایش داده نشه؟
سلام منم این کدهارو در فانکشن میزارم صفحه سفید باز میشه قبل از <? هم گزاشتم باز درست نشد سایت من http://www.agahie.com/advertising/ واسه این صفحه میخواستم و این صفحه هم با المنتور ساخته شده ممنون میشم راهنماییم کنید
ممنون برای من کار کرد ولی نیاز به فارسی سازی داره
کانال تلگرام
عضویت در کانال
سایر مقالات
ورود به مدرسه وردپرس
عضویت در مدرسه وردپرس