افزودن صفحه بندی به وردپرس بدون نصب افزونه
- مقالات آموزشی
- بروزرسانی شده در
توسط سیستم مدیریت محتوای وردپرس و قالب و افزونههای مختلفی که در سایت در اختیار شما قرار میگیرند؛ شما میتوانید امکانات مختلفی را به سایت خود اضافه کنید. در برخی موارد نیز این امکانات بهوسیله کد نویسی قابل افزوده شدن به سایت است. شماره صفحات یکی از امکاناتی است که شما درصورتیکه در سایت خود محتوای زیادی داشته باشید باید حتماً از آن استفاده کنید. برای افزودن صفحه بندی به وردپرس این مقاله آموزشی را ببینید.
بهطور پیشفرض قالب وردپرس لینک صفحهبندی را از طریق افزودن لینک قدیمیترین پست و جدیدترین پست در انتهای صفحه آرشیو وردپرس نمایش میدهد. بااینحال بیشتر سایتها از صفحهبندی عددی مانند سایت میهن وردپرس استفاده میکنند. در این مقاله ما به شما نحوهی افزودن صفحهبندی عددی به قالب وردپرس را آموزش میدهیم. در اینجا هدف قرار دادن قدیمیترین و جدیدترین لینک صفحهبندی در انتهای صفحه آرشیو با حرکت راحت صفحات میباشد.
دو روش برای افزودن صفحهبندی عددی به قالب وردپرس وجود دارد. روش اول افزودن صفحهبندی عددی بهصورت دستی و بدون استفاده از افزونه است و روش دوم استفاده از یک افزونه میباشد. ازآنجاکه این مقاله در دسته آموزش قرار میگیرد، ابتدا روش دستی را توضیح میدهیم. بعداً در مقاله دیگری افزونهای را برای این کار به شما معرفی خواهیم کرد.
هر یک از این روشها مزیتهای مخصوص به خود را دارند. اگر شما مایل به استفاده از افزونه باشید افزونههای زیادی هستند که به شما در این زمینه کمک خواهند کرد. اما اگر شما آشنا به کد نویسی هستید میتوانید بهراحتی این کار را در سایت خود انجام دهید. بهاینترتیب نیاز به نصب هیچ افزونه اضافی در سایت نیست.
اهمیت افزودن شماره صفحات به وردپرس
دستهبندی مطالب مختلف سایت در صفحات مختلف باعث میشود که صفحات سایت شما زودتر لود شوند. اما اگر این کار را انجام ندهید به دلیل حجم بالای محتوا پس از ورود کاربر به سایت صفحات بهکندی لود خواهند شد. این موضوع میتواند سبب کاهش آمار بازدید سایت شما شود. همچنین دستهبندی مطالب در صفحات مختلف باعث میشود موتورهای جستجو بهتر مطالب شما پردازش کنند و در اختیار کاربران قرار دهند.
از طرف دیگر کاربر امکان این را دارد که مطلب موردنظر خودش را با توجه به دستهبندیهای صورت گرفته بهراحتی پیدا کند و در سایت شما سردرگم نشود. این موضوع باعث میشود سئو سایت خود را بهبود دهید.
زمانی که شما با استفاده از قابلیت پیشفرض وردپرس این کار را انجام دهید تنها دو گزینه صفحه قبل و بعد به سایت شما اضافه میشود. اما با استفاده از این کد میتوانید این قابلیت را در سطح بهتر و بالاتری انجام دهید. این کدها باعث میشود شما علاوه بر اینکه این دو گزینه را اضافه میکنید در بین آنها اعداد شماره صفحات نیز قرار بگیرند.
یکی از مزیتهایی که انجام این کار دارد این است که باعث میشود مطالب قدیمی و جدید شما از هم جدا شده و مشخص شوند و کاربر بتواند به توجه به شماره صفحات آنها را از هم تشخیص دهید. همچنین با استفاده از شمارهگذاری شما شانس دیده شدن مطالب قدیمی سایت خود را بیشتر میکنید. این کار باعث میشود سایت شما در نظر کاربران مرتبتر جلوه کند و ظاهر خوبی داشته باشد.
افزودن صفحه بندی به وردپرس
شما امکان این را دارید که در عرض چند دقیقه این کار را انجام دهید. در ابتدا برای شما نحوه افزودن صفحهبندی عددی بهصورت دستی را نمایش میدهیم که این به نفع کاربران پیشرفته، کاربرانی که در حال یادگیری توسعه قالب هستند و یا میخواهند این کار بدون استفاده از افزونه انجام دهند میباشد.
برای انجام این کار نیز از فایل پرکاربرد فانکشن استفاده میکنیم. در ابتدا فایل پوسته را بازکرده و کد زیر را به آن functions.php اضافه کنید.
function mihanwp_numeric_posts_nav()
{
if (is_singular()) return;
global $wp_query;
/** Stop execution if there's only 1 page */
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);
/** Add current page to the array */
if ($paged >= 1) $links[] = $paged;
/** Add the pages around the current page to the array */
if ($paged >= 3)
{
$links[] = $paged - 1;
$links[] = $paged - 2;
}
if (($paged + 2) <= $max)
{
$links[] = $paged + 2;
$links[] = $paged + 1;
}
echo '<div class="navigation"><ul>' . "\n";
/** Previous Post Link */
if (get_previous_posts_link()) printf('<li>%s</li>' . "\n", get_previous_posts_link());
/** Link to first page, plus ellipses if necessary */
if (!in_array(1, $links))
{
$class = 1 == $paged ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link(1)) , '1');
if (!in_array(2, $links)) echo '<li>…</li>';
}
/** Link to current page, plus 2 pages in either direction if necessary */
sort($links);
foreach((array)$links as $link)
{
$class = $paged == $link ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($link)) , $link);
}
/** Link to last page, plus ellipses if necessary */
if (!in_array($max, $links))
{
if (!in_array($max - 1, $links)) echo '<li>…</li>' . "\n";
$class = $paged == $max ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($max)) , $max);
}
/** Next Post Link */
if (get_next_posts_link()) printf('<li>%s</li>' . "\n", get_next_posts_link());
echo '</ul></div>' . "\n";
}
این کد تعداد صفحات و یک لیست از لینک شماره را آماده میکند. برای افزودن کد به قالب باید برچسب زیر را به Index.php, Archive.php, Category.php و دیگر قالبهای آرشیو صفحه اضافه کنید.
<?php mihanwp_numeric_posts_nav(); ?>
اکنونکه صفحهبندی را لیست کردهایم نیاز داریم لیست را استایل دهی کنیم. ما میخواهیم که لیست را در خط بلوک جاییکه صفحه با رنگهای پسزمینه مختلف فعالشده ایجاد کنیم. برای انجام دادن آن کد زیر را به قالب فایل Style.css اضافه کنید:
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
color: #fff;
text-decoration:none;
}
.navigation li {
display: inline;
}
.navigation li a,
.navigation li a:hover,
.navigation li.active a,
.navigation li.disabled {
background-color: #6FB7E9;
border-radius: 3px;
cursor: pointer;
padding: 12px;
padding: 0.75rem;
}
.navigation li a:hover,
.navigation li.active a {
background-color: #3C8DC5;
}
اکنون لیستی از صفحهبندی عددی در قالب داریم. در نظر داشته باشید که قبل از هر تغییری در فایل فانکشن حتماً یک نسخه پشتیبان از مطالب سایت خود تهیه کنید.
به همین راحتی! شماره بندی صفحات بدون نیاز به نصب افزونه به سایت شما اضافه شد.
موفق و پیروز باشید. 🙂
با سلام
من این کدها رو وارد کردم متاسفانه شماره صفحات نشون داده نمیشه .
از حلقه while استفاده کردم بدون query بقیه اجزا به درستی کار میکنن اما این مورد کار نمیکنه حتی از echo هم قبل از تابع استفاده کردم , درست نشد.ممنون میشم راهنمایی کنید…
سلام نیازی به echo نیست حتما کد را بعد از endwhile و قبل از endif اجرا کنید.
بله دقیقا بین دو کدی که فرمودین قرار دادم متاسفانه اجرا نمیکنه…
از wp pagination اصلی وردپرس استفاده و تست کنید.
سلام . من دقیقا کد را وارد کردم و صفحه بندی ظاهر شد اما کار نمیکنه و وقتی بررووی صفحه بعدی کلیک میکنم دوباره همون صفحه نشون داده میشه ب جای اینکه بقیه ی پست ها را نشون بده. مشکل چیه ؟
سلام
سایر افزونه هارو غیرفعال و بررسی کنید که مشکل حل میشه یا نه
سلام. یک سوال داشتم. من سایتم را با بوت استرپ نوشتم و برای صفحه بندی از کد زیر استفاده کردم که Pagination خود بوت استرپ هست . اما سوال اینجاست نمیدونم چطور داینامیک اش کنم که با کلیک برروی هر المان به صفحه مورد نظر بره..ممنون میشم راهنمایی ام کنید.
Previous
1
2
3
Next
با سلام
توی سایت ما سرچ کنید ساخت شماره صفحات در وردپرس
سلام
تعداد پست هایی که در هر صفحه نشان داده می شود را چطور میتوان کنترل کرد؟
مثلا مشخص کنیم که در هر صفحه به جای نمایش 10 پست 9 یا 12 پست نشان داده شود؟؟
سلام
از بخش تنظیمات > خواندن میتونید تغییر بدید.
سلام
من یه پست تایپی درست کردم و در زیر پست های معمولی قرارش دادم و برای پست های معمولی قابلیت صفحه بندی ( pagination ) رو قرار دادم و کار میکنه
و از همین لینک
یه صفحه بندی جدید قرار دادم و برای پست تایپ هم گذاشتم ، مشکل اینجاست که هر دو صفحه بندی یکی شده…… یعنی موقعی که میزنیم صفحه بعد ، هم پست های معمولی میره صفحه بعد ، هم پست تایپ
در کل میخوام بهتون بگم که:
من میخوام برای پست معمولی و هم پست تایپ ، یه صفحه بندی جدا قرار بدم
ولی موقعی که قرار میدم ، دوتاش باهم دیگه کار میکنه
یعنی هم پست های معمولی میره صفحه بعد و هم پست تایپ
ممنون میشم کمکم کنید
مشکل بنده حل شد ، مثل اینکه داخل فایل index.php نیمشه دوتا pagination رو قرار بدیم و من با درست کردن یه template page ، ادامه پست تایپ رو به صفحه بعد انتقال دادم.
با تشکر
سلام باید توی صفحات جداگانه قرار بدید چیزی که شما میخاید با ajax باید بسازید.
فقط یه سوال
چجوری مشخص کنیم که بعد از چند پست… پست های بعدی به صفحه بعد بروند؟
خودکار اینکار رو انجام میده.
یعنی هیچ راهی وجود نداره که درستش کرد 🙁
خودکار انجام میده نیازی به درست کردن نداره
سلام ممنون بابت آموزش کد ها به خوبی کار میکنند ولی کد های استایل اصلا برای من کار نمی کنند
در فایل هدر من از کد لینک استفاده می کنم
لطفا کمک کنید
با تشکر
مشکلم حل شد
اشتباه از خودم بود
سلام سپاس از شما. به فایل style.css اضافه کنید.
سلام ببخشید من همین کد رو توی برگه ها قرار دادم هم توی صفحه اصلی برای مطالب سایت.ولی وقتی دقیقا همون کد رو که داخل صفحه اصلی هست و کار میکنه رو در یکی از برگه های خودم قرار میدم کار نمیکنه.در ضمن من میخوام کل مطالب صفحه اصلیم در یکی از برگه هام نمایش داده بشه و نمایش داده میشه اما صفحه شمارش هر کاری میکنم نمیاد.
سلام در برگه ها معمولا مطالب با شورت کد نمایش داده میشوند. این کد باید در آرشیو نمایش داده شود.
سلام خسته نباشید من کدو استفاده کردم.اما روی هر صفحه کلیک میکنم میره ولی مطالب عوض نمیشن و همونن؟
سلام سپاس. شما از while پیشفرض وردپرس استفاده نکردید و query اختصاصی زدید.
سلام ببخشید این نام دکمه رو چطور تغییر بدم.
زده برگه قبل و برگه پیش؟چطور میشه تغییرش داد؟
سلام توی کدها باید next و previous رو تغییر بدید
سلام من سایتم رو با ویژاول کامپوسر ساختم میخوام در زیر مطالب اصلی سایتم صفحه بندی رو قرار بدم. چه جوری باید این کارو انجام بدم. البته در حالت عادی بخش category و … صفحه بندی دارن ولی مشکلم با صفحه ساخته شده با ویژاول هستش. اگه جواب بدید ممنون میشم.
سلام
از این افزونه استفاده کنید :
WP-PageNavi