در وردپرس، شما بخشی برای نمایش شماره صفحات دارید. این صفحه بندی ها زمانی نمایش داده خواهند شد که تعداد نوشته های شما بیشتر از تعداد تعیین شده در تنظیمات وردپرس شما می باشد و این امر موجب مرتب سازی و صفحه بعدی صفحات و نوشته های شما خواهد شد.

برای انجام این کار، افزونه های مختلفی از جمله افزونه 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>

در نهایت شما باید چیزی شبیه به تصویر زیر داشته باشید

صفحه بندی در وردپرس

امیدوارم آموزش امروز برای شما مفید واقع شود.

موفق و موید باشید

کلمات کلیدی:

46 دیدگاه برای “آموزش ساخت صفحه بندی وردپرس بدون افزونه

  • ارش
    - ۶ اسفند , ۱۳۹۲

    سلام
    نتونستم,خواهش کنم میشه اینکارو برام انجام بدین؟حرفه ای هستین واسه شما که کاری نداره.میکنید؟

    • الناز
      - ۶ اسفند , ۱۳۹۲

      سلام دوست من. تلاش خودتون رو کنید قطعا می توانید. بله من کمکتون می کنم

  • رضا
    - ۱۹ فروردین , ۱۳۹۳

    سلام همه چی درسته ولی فقط قسمت بعدی بعد از ۱ از ۲ میاد :
    http://www.uplooder.net/img/image/26/0c3f0287d6b554b691009a1e684edc9b/1111.jpg

    میشه قسمت فانکشن رو خط به خط توضیح بدید؟ ممنون می شم

    • الناز
      - ۲۳ فروردین , ۱۳۹۳

      سلام دوست من. اگر دقیقا طبق آموزش پیش رفته باشید طبق نمونه نمایش داده می شود. منظورتونو از قسمت فانکشن متوجه نشدم

    • RayanSaz
      - ۲۶ خرداد , ۱۳۹۵

      با سلام
      خوب تعداد مطالب شما همینقدره
      هرچی تعداد بالا بره تعداد صفحات هم بالا میره

  • امین
    - ۲۵ تیر , ۱۳۹۳

    سلام خسته نباشید سوالی داشتم من همین کاری که بیان کردید رو انجام دادم از فایل functions وقتی استفاده می کنم داخل قالب وردپرسم مشکلی پیش میاد بخش header قالب حدود ۲۰ margin به سمت پایین میاد مشکل کجاست؟

    • الناز بیک زاده
      - ۱۲ مرداد , ۱۳۹۳

      سلام دوست عزیز. این مشکل نیست. احتمالا نوار مدیریت در بالا نشان داده میشه اما چون سایت کامل لود نشده جای اون خالیه و فکر می کنید که از بالا ۲۰ پیکسل حاشیه داره

  • mehde
    - ۱۶ آبان , ۱۳۹۳

    دوست عزیز من کد شما رو گذاشتم تو سایتم حالاهمه چیبه هم خورد دیگه صفحه وردپرسم بالا نمیاد چیکار کنم

  • mehde
    - ۱۶ آبان , ۱۳۹۳

    حتی دیگه صفحه ورودمم سفید شده

    • الناز بیک زاده
      - ۱۷ آبان , ۱۳۹۳

      سلام مهدی جان. من سایت شما رو دیدم

      شما کد رو جای مناسبی قرار نداده اید

      اگر در انتهای فایل فانکشن شما ?> وجود دارد کد را قبل از آن قرار دهید

  • وبر
    - ۷ دی , ۱۳۹۳

    سلام!! خیلی ممنون

    فقط ازکجا میشه بهش گفت که توی هر صفحه چند تا مطلب قرار بگیره؟؟

    • الناز بیک زاده
      - ۲۲ دی , ۱۳۹۳

      سلام. از طریق تنظیمات وردپرس – تنظیمات -> خواندن

  • خورشيد
    - ۲۸ دی , ۱۳۹۳

    سلام ….
    عااااااااااااااااااااااااااااااالیییییییییییی بووووووووود….
    نجاتم دادی .. ممنونم.

  • Daniyal_K7
    - ۵ اسفند , ۱۳۹۳

    عالی.
    خسته نباشید.

  • mahdi
    - ۱۲ اسفند , ۱۳۹۳

    سلام ببخشید یه سئوال
    یه مشکل بزرگ هست
    اونم اینکه قالب من فایل style کدها رو قرار میدم
    اما اعمال نمیکنه

    • الناز بیک زاده
      - ۱۳ اسفند , ۱۳۹۳

      سلام مهدی جان. لطفا آدرس سایتتو بفرست و اگر سایتتون آنلاین نیست فایل استایلو به ایمیل wpchool1@gmail.com بفرست

    • الناز بیک زاده
      - ۱۳ اسفند , ۱۳۹۳

      سلام احسان جان. همینطوری نمیشه مشکل رو تشخصی داد لطفا فایل فانکشنتو به آدرس wpschool1@gmail.com ایمیل کن

      • امیرحسین آقاجانی
        - ۲۳ آذر , ۱۳۹۵

        سلام، من توی قالبم هنوز از functions.php استفاده نکرده بودم!
        برای استفاده از این اموزش فایل رو که میسازم، سایتم اصلا بالا نماید!
        همه جاش از کار میوفته!
        باید از توی هاست برم ادیت کنم برش دارم تا درست شه!
        مشکل از کجاس؟
        ممنون میشم راهنمایی کنید

        • الناز
          - ۲۵ آذر , ۱۳۹۵

          سلام دوست عزیز
          شما وقتی فایل رو میسازید و میگید سایت بالا نمیاد ، فایل wp-config.php رو باز کنید و WP_DEBUG = TRUE بزارید و صفحه رو رفرش کنید ببنید چه خطایی میده
          خطا رو برای بنده بفرستید تا راهنماییتون کنم

  • حسین
    - ۱۶ اسفند , ۱۳۹۳

    سلام. مطلب جدید نمیذارید دیگه؟؟؟؟؟

    • الناز بیک زاده
      - ۱۶ اسفند , ۱۳۹۳

      سلام حسین جان. چرا میزارم به علت کمبود وقت یه کم دیر میشه

  • حجت
    - ۲۱ اسفند , ۱۳۹۳

    ممنون کار کرد، فقط تنظیمات “خواندن” باید تنظیم باشه که چه تعداد پست در هر صفحه می خوایم داشته باشیم.

  • Javad
    - ۲ خرداد , ۱۳۹۴

    سلام من این مراحل را انجام دادم اما صفحه سایتم سفید و صفحه ی ورد پرسم هم سفید شده و دیگه هیچی باز نمیشه حتی ویرایشگر قالب.
    لطفا کمکم کنید…

    • الناز
      - ۲ خرداد , ۱۳۹۴

      سلام دوست عزیز. احتمالا کد رو در حای اشتباهی قرار دادید. از طریق هاستون کدی که اضافه کردید رو بردارید و در جای مناسب قرار بدید. دقت کنید که قبل از ?> باشد

  • Peyman
    - ۳۰ شهریور , ۱۳۹۴

    سلام خسته نباشید

    من یه مشکل واسم پیش اومده . هیچ کسی نیست که راهنماییم کنه . لطفا شما راهنمایی کنید

    من صفحه بندی سایتم رو با هر روشی که انجام میدم . روی لوکال هاست برنامه (easy php) درست کار میکنه و نمایش

    داده میشه . ولی روی هاست اصلا نمایش داده نمیشه

    از افزونه های:
    wp-pagenavi
    wp-page-numbers

    و انواع روش های بدون افزونه رو امتحان کردم . کاملا دقیق و اصولی
    ولی روی هاست اصلا شماره صفحه بندی ها نمایش داده نمیشه(تنظیمات خواندن داخل مدیریت رو هم تغییر دادم ولی فایده نداشت)
    ولی اکه داخل آدرس بار مرورگر شماره صفحه رو وارد کنم وارد اون صفحه میشه و کار میکنه

    قالب سایتم رو خودم طراحی کردم . که اشکال از قالب نیست
    حتی قالب های دیگه هم از اینترنت دانلود کردم و امتحان کردم که ببینم مشکل از قالب منه یا نه . که بازم کار نکرد و نمایش داده

    نشد
    قالب هایی که دانلود کردم و استفاده کردم واسه تست:
    sahifa
    jarida
    ۱۳Floor
    Downloadha
    و قالب های مشهور دیگه

    ولی فایده نداشت

    لطفا شما راهنمایی کنید مشکل از چیه

    • سیروس
      - ۲ مهر , ۱۳۹۴

      سلام دوست من. اگر سایتتون الان آنلاین هستش لینکش رو بدید چک کنم

  • سما
    - ۱۵ مهر , ۱۳۹۴

    ممنون از آموزش خوبتون. من یه سوال داشتم، اینکه من کد فراخوانی رو نمیدونم کجا باید قرار بدم
    ممنون میشم راهنمایی کنید

    • الناز
      - ۲۳ مهر , ۱۳۹۴

      سلام سما جان. کد فراخوانی رو باید جایی که میخوایی صفحه بندی نشون داده بشه قرار بدی. که البته این هم بستگی به قالبی داره که استفاده میکنی

  • saeed
    - ۲۵ بهمن , ۱۳۹۴

    مرسی خیلی عالی بود

  • فرهاد
    - ۲۹ بهمن , ۱۳۹۴

    سلام
    خسته نباشید
    من از چند تا کد دیگه و این کد تو سایتم استفاده کردم صفحه بندی انجام میشه ولی رو هر صفحه کلیک می کنم بر میگرده به صفحه اول
    ممنون میشم راهنمایی کنید مشکل از کجاست …

    • الناز
      - ۳ اسفند , ۱۳۹۴

      سلام دوست عزیز. بهتره کدتونو واسم بفرستید تا بتونم راحت تر کمکتون کنم

  • آپلود عکس
    - ۱۴ خرداد , ۱۳۹۵

    سلام خیلی عالی بود مرسی

  • سعید
    - ۱۵ تیر , ۱۳۹۵

    کاش کاش کاش این آمزش هارو در قالب ویدئو ارائه می کردین 🙁

    • سیروس
      - ۱۷ تیر , ۱۳۹۵

      به زودی تمامی مراحل ساخت قالب به صورت ویدئو در سایت قرار خواهد گرفت
      با تشکر

  • mohhammad
    - ۲۰ اسفند , ۱۳۹۵

    سلام من میخواستم شماره صفحه سایتم مثل مال شما فارسی باشه مقدار پیشفرض انگلیسی یعنی اعداد انگلیسی نشون میده برای این که فارسی بش چطوری باید اینکارو بکنم؟ ممنون میشم جواب والمو بدین

    • سیروس
      - ۵ فروردین , ۱۳۹۶

      در صورتی که از وردپرس فارسی استفاده می کنید ، افزونه وردپرس فارسی به صورت پیش فرض نصب شده و می تونید از طریق این افزونه اعداد رو فارسی کنید.

  • mohhammad
    - ۶ فروردین , ۱۳۹۶

    سلام دوست عزیر من از وردپرس فارسی استفاده میکنم ولی باز شماره های که نشون میده انگلیسی هستن ممنون میشم کمکمکنین که به فارسی تبدیلشون کنم باتشکر

    • سیروس
      - ۱۴ فروردین , ۱۳۹۶

      ابتدا افزونه wp-jalali نصب کرده و سپس از قسمت تنظیمات افزونه “تبدیل اعداد به فارسی” را تیک بزنید
      موفق باشید

  • Amir
    - ۲۹ تیر , ۱۳۹۷

    خیلی ممنون ازتون کار کرد و اینکه خیلی کامل تره از بقیه

    • سیروس
      - ۲۹ تیر , ۱۳۹۷

      سلام و خسته نباشید
      خیلی خوشحالیم که آموزش های مدرسه وردپرس مشکل شما رو حل کرده
      موفق باشید

  • محمد
    - ۲۸ دی , ۱۳۹۷

    من کدهای فانکشن و فراخوانی رو میذارم و همه کارا رو دقیق و درست انجام میدم اما کلا نشون نمیده شماره بندی رو
    اما وقتی فانکشن پانک میکنم به جای کد فراخوانی این کد رو میذارم
    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://www.agahie.com/advertising/ واسه این صفحه میخواستم و این صفحه هم با المنتور ساخته شده ممنون میشم راهنماییم کنید

  • amir
    - ۵ تیر , ۱۳۹۹

    ممنون برای من کار کرد ولی نیاز به فارسی سازی داره

دیدگاه خود را بیان کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --