صفحه بندی مطالب وردپرس بدون افزونه

آموزش وردپرس / بهینه سازی (SEO) / هک و کد های وردپرس

صفحه بندی مطالب وردپرس بدون افزونه

سلام.

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

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

اول شما باید یه فایل php با نام paginate یا نام دلخواه خود بسازید و کد زیر رو درون اون قرار بدید:

<?php

function kriesi_pagination($pages = '', $range = 2)
{
$showitems = ($range * 2)+1;

global $paged;
if(empty($paged)) $paged = 1;

if($pages == '')
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}

if(1 != $pages)
{
echo "<div class='pagination'>";
if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>";

for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
}
}

if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";
if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
echo "</div>\n";
}
}

?>

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

حالا باید این فایل رو فراخوانی کنید، فایل functions رو باز کنید و کد زیر رو در آن کپی کنید:

include ( 'paginate.php' );

حالا باید تو پوسته خودتون هر جا که تمایل داشتید به نمایش در بیاد کد زیر رو اضافه میکنید:

<?php kriesi_pagination(); ?>

حالا میرسیم به بحث شیرین استایل دادن :d

برای استایل دادن هم باید از کد های زیر استفاده کنید و در صورت تمایل آن ها رو تغییر بدید:

.pagination{
margin-bottom: 30px;

}

.pagination a{
-webkit-box-shadow: 0 1px #fff, inset 0 1px #fff;
-moz-box-shadow: 0 1px #fff, inset 0 1px #fff;
box-shadow: 0 1px #fff, inset 0 1px #fff;
border: solid 1px #d2d2d2;
background-image: -webkit-linear-gradient(bottom, #f4f4f4, #fafafa);
background-image: -moz-linear-gradient(bottom, #f4f4f4, #fafafa);
background-image: -o-linear-gradient(bottom, #f4f4f4, #fafafa);
background-image: -ms-linear-gradient(bottom, #f4f4f4, #fafafa);
background-image: linear-gradient(to top, #f4f4f4, #fafafa);
display: block;
width:30px;
height: 30px;
line-height: 30px;
text-align: center;
float: right;
margin-right: 10px;
border-radius: 3px;
color: #777;
}

.pagination span{
color: #fff;
-webkit-box-shadow: 0 1px #fff, inset 0 0 7px #2e2e2e;
-moz-box-shadow: 0 1px #fff, inset 0 0 7px #2e2e2e;
box-shadow: 0 1px #fff, inset 0 0 7px #2e2e2e;
background-image: -webkit-linear-gradient(bottom, #585858, #727272);
background-image: -moz-linear-gradient(bottom, #585858, #727272);
background-image: -o-linear-gradient(bottom, #585858, #727272);
background-image: -ms-linear-gradient(bottom, #585858, #727272);
background-image: linear-gradient(to top, #585858, #727272);
display: block;
border: solid 1px #111;
width:30px;
height: 30px;
line-height: 30px;
text-align: center;
float: right;
margin-right: 10px;
border-radius: 3px;
}

خوب تموم شد ! امیدوارم مورد استفاده قرار بگیره.

سوالات و مشکلات خود را در دیدگاه ها بیان کنید، حتما پاسخ خواهیم داد.

دیدن این مطالب رو به شما پیشنهاد میکنیم...

۳۱ دیدگاه برای این مطلب ارسال شده است

  1. با سلام من از WP-PageNavi استفاده کردم برای مطالب دسته ها درست کار میکنه ولی توی صفحه اول به نظر میاد اصلا پیج تعریف نشده، تو همش صفحه اولو نشون میده

  2. سلام! دست شما درد نکنه 🙂
    من درستش کردم 🙂
    ولی حالا میرسیم به بحث شیرین استایل دادن :d رو نتونستم درست کنم 😐
    یه خورده بیشتر توضیح میدی ؟
    کد رو کجا باید قرار بدیم ؟

  3. سلام
    ممنون از راهنمایی خوبتون منتها این روش شما فقط شماره صفحات رو نشون میده اگر ۱۰۰ صفحه در سایت باشه همشون رو نشون میده راهی نداره بهش صفحه فلان تا فلان صفحه رو نشون بده؟؟

  4. سلام
    مرسی جالب بود.من توی یکی از سایت هام با افزونه پیج نوی به مشکل برخورده بودم. مشکلم با خوندن این مطلب حل شد
    تشکر…

  5. سلام خسته نباشید تشکر برای سایت خوبتون
    یه سوال داشتم خواهشن جواب بدید که کارم خیلی گیره
    من یه سایتی دارم که نمیخوام توی صفحه ایندکس مطالب نشون داده بشه
    بنابراین یه صفحه ای ساختم با نام blog و با این دستور
    <?php /* Template Name: blog */ ?>
    قالبش رو برای وردپرس شناختم
    و برای این که مطالبم رو بتونم تو این صفحه نمایش بدم از این کویری استفاده کردم
    <?php
    global $post;
    $myposts = get_posts(array('numberposts' =>5 , 'offset' => 0,'post_status'=>'publish' , 'cat'=>'-4' ));
    foreach($myposts as $post) :
    setup_postdata($post); ?>
    ————————-
    <?php endforeach; ?>
    <?php wp_reset_query(); ?>
    اما الان مشکلم اینه که نمیتونم از تنظیمات وردپرس مشخص کنم که چه تعداد مطلب توی صفحه نمایش داده بشه و بنابراین نمیتونم از wp_pagenavi برای صفحه بندی استفاده کنم
    لطفا بگید که چطور میتونم مطالبم رو صفحه بندی کنم
    خیلی کارم گیره ممنون میشم زود جواب بدید

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

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

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

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

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

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

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

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

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

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

    • سلام بزرگوار , خسته نباشید

      اطلاعات مربوط رو براتون ارسال کردم با همین نام و ایمیل

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

      منتظر پیامتون هستم

      سپاسگزارم
      موفق باشید

  8. کد رو که گذاشتم کار نکرد….

    مشکله بدبخته من اینه که صفحه بندی توی موضوعات کار میکنه اما پست هایی که توی صفحه ی اصلی هستش صفحه بندیش کار نمی کنه وقتی روی صفحه دو یا صفحه های دیگه کلیک میکنی همون مطالب صفحه اولش رو نشون میده ، هیچ تغییری نمیکنه ، ،فقط ادرس url مرورگر تغییر میکنه … 🙁 ماندم چیکار کنم …

  9. سلام.
    من این کد رو دقیقا مشابه آموزشتون استفاده کردم ولی نه این کد و نه افزونه pagenavi روی قالبی که طراحی نمودم کار نمیکند .
    به نظر شما مشکل از چه میتوانید باشد ؟
    با تشکر و سپاس

پاسخ دهید

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