من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

اضافه کردن pagination در وردپرس بدون افزونه

اضافه کردن pagination در وردپرس بدون افزونه
اضافه کردن pagination در وردپرس بدون افزونه

اضافه کردن pagination در وردپرس بدون افزونه

سیستم مدیریت محتوای وردپرس از گذشته تا به امروز میزبان وبسایت‌های محتوا محور بوده است که بتواند محتوای یک وبسایت را نمایش دهد. مفهوم pagination به معنای صفحه ی بندی با شماره است که شما در هر صفحه تعدادی از محتوای خود را نشان می‌دهید برای بررسی محتوای بیش‌تر کاربر باید وارد صفحات دیگر شود. البته اگر محتوای وبسایت شما به صورت ایجکسی و با اسکرول صفحه لود شود نیاز به pagination ندارید. اگر نیاز به فعال کردن pagination در صفحات وبسایت وردپرسی خود دارید گاها به شما گفته می‌شود که افزونه یا پلاگین خاص این کار را نصب کنید اما در کل اگر پلاگین های کم‌تری فعال کنید از لحاظ سرعت و امنیت بهتر است.

 

اضافه کردن pagination در وردپرس بدون افزونه

برای اضافه کردن قابلیت pagination بدون نیاز به نصب و فعالسازی افزونه‌ای خاص مراحل زیر را دنبال کنید:

  • ابتدا فایل functions.php قالب خود را باز کنید.
  • کد زیر را به این فایل اضافه کنید:
function my_pagination() {
    if( is_singular() )
        return;
    global $wp_query;
    if( $wp_query->max_num_pages <= 1 )
        return;
    $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
    $max   = intval( $wp_query->max_num_pages );
    if ( $paged >= 1 )
        $links[] = $paged;
    if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
    }
    if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
    }
    echo '<div class="pagination nav"><ul class="navbar" style="list-syle:none;">' . "\n";
    if ( get_previous_posts_link() )
        printf( '<li class="btn btn-primary text-light">%s</li>' . "\n", get_previous_posts_link() );
    if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';
        printf( '<li%s class="nav-item"><a class="btn btn-primary" href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
        if ( ! in_array( 2, $links ) )
            echo '<li>…</li>';
    }
    sort( $links );
    foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s class="nav-item"><a class="btn btn-primary" href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
    }
    if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
            echo '<li class="nav-item btn btn-primary">…</li>' . "\n";
        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s class="nav-item"><a class="btn btn-primary" href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
    }
    if ( get_next_posts_link() )
        printf( '<li class="btn btn-primary text-light">%s</li>' . "\n", get_next_posts_link() );
    echo '</ul></div>' . "\n";
  • بعد از اضافه کردن کد بالا این فایل را ذخیره کنید.
  • وارد بخشی که نیاز دارید pagination صفحات نمایش داده شود بروید؛ معمولا pagination در فایل index.php قرار دارد پس این فایل را برای ویرایش باز کنید و کد زیر را در محل مناسب بگذارید‌:
<?php echo my_pagination(); ?>
  • خب حالا به سادگی شما یک pagination در وبسایت خود فعال کرده‌اید که نیازی به نصب و فعال کردن افزونه‌ای نداشت.

 

راستی یه خبر خوش براتون داریم؛ یک دوره‌ی ویدیویی وردپرس به صورت رایگان برای شما کاربران عزیز تهیه شده است که از این لینک به آن دسترسی پیدا کنید. منتظر نظرات و پیشنهادات شما برای محتوای سایت هستیم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]