SHET25

آموزش مرتب سازی برگه‌ها در پیشخوان وردپرس

آموزش مرتب سازی برگه‌ها در پیشخوان وردپرس

برگه‌ها از اون بخش‌های وردپرس هستن که یواش‌یواش زیاد می‌شن. برگه‌هایی مثل «تماس با ما» یا «دربارهٔ ما» به تاریخ انتشار ربطی ندارن و تقریباً همیشه ثابت می‌مونن. ولی وقتی تعدادشون زیاد بشه، پیدا کردن یه برگه تو پیشخوان یا چیدنشون به ترتیبی که شما می‌خواید، حسابی وقت‌گیر می‌شه.

تو این مطلب اول می‌بینیم ترتیب برگه‌ها تو وردپرس اصلاً از کجا میاد و خود وردپرس چه امکانی براش داره. بعد می‌ریم سراغ افزونهٔ رایگان Simple Page Ordering که این کار رو بدون کدنویسی و فقط با کشیدن و رها کردن براتون انجام می‌ده.

مشخصات افزونه

  • اسم: Simple Page Ordering
  • سازنده: 10up
  • قیمت: رایگان، از مخزن رسمی وردپرس
  • آخرین نسخه: 2.8.0 (مه ۲۰۲۶)
  • نیازمندی‌ها: وردپرس 6.8 یا بالاتر و PHP 7.4 یا بالاتر، تست‌شده تا وردپرس 7.1
  • نصب‌های فعال: بیشتر از ۱۰۰ هزار
  • ترجمهٔ فارسی: داره

این مشخصات رو از صفحهٔ رسمی افزونه تو WordPress.org برداشتیم. وضعیت پشتیبانی افزونه «پایدار» اعلام شده. یعنی قرار نیست قابلیت جدیدی بهش اضافه بشه، ولی سازنده هنوز خطاها و مشکلات امنیتی رو رفع می‌کنه و افزونه رو با آخرین نسخهٔ وردپرس سازگار نگه می‌داره.

ترتیب برگه‌ها تو وردپرس از کجا میاد؟

وردپرس برای هر برگه یه عدد به اسم menu_order تو پایگاه داده نگه می‌داره. مقدار پیش‌فرض این عدد صفره و هر برگه‌ای که عدد کوچیک‌تری داشته باشه، زودتر نشون داده می‌شه. همهٔ روش‌هایی که پایین‌تر می‌بینید، چه روش خود وردپرس چه افزونه، آخرش همین عدد رو عوض می‌کنن.

روش خود وردپرس (بدون افزونه)

وردپرس خودش اجازه می‌ده ترتیب برگه‌ها رو تعیین کنید، ولی امکان کشیدن و رها کردن برگه‌ها تو فهرست رو نداره. تو این روش باید برای هر برگه یه عدد وارد کنید و این کار از دو جا انجام می‌شه:

  1. از داخل ویرایشگر: برگه رو تو ویرایشگر بلوکی یا کلاسیک باز کنید. تو نوار کناری، داخل بخش «ویژگی‌های برگه»، یه فیلد به اسم «ترتیب» می‌بینید.
  2. از ویرایش سریع: تو فهرست برگه‌ها، نشانگر موس رو روی عنوان برگه نگه دارید، «ویرایش سریع» رو بزنید و فیلد ترتیب رو عوض کنید.
ترتیب نمایش برگه‌ها در پنل مدیریت وردپرس بدون افزونه
ترتیب نمایش برگه‌ها در پنل مدیریت وردپرس بدون افزونه

اگه سایتتون فقط چندتا برگه داره، همین روش کارتون رو راه می‌ندازه. ولی وقتی برگه‌ها زیاد بشن، شماره دادن به تک‌تکشون هم خسته‌کننده‌ست هم احتمال اشتباه داره. Simple Page Ordering دقیقاً همین‌جا به دردتون می‌خوره، چون وقتی برگه‌ها رو جابه‌جا می‌کنید، این عددها رو خودش تنظیم می‌کنه.

حواستون باشه: ترتیب آیتم‌ها تو نمایش > فهرست‌ها ربطی به این عدد نداره. جابه‌جا کردن آیتم‌ها تو فهرست‌ها مقدار menu_order برگه‌ها رو عوض نمی‌کنه. پس اگه فقط می‌خواید ترتیب منوی سایت عوض بشه، همون بخش فهرست‌ها کافیه.

نصب و کار با افزونهٔ Simple Page Ordering

قدم اول: نصب افزونه

از مسیر افزونه‌ها > افزودن عبارت Simple Page Ordering رو جستجو کنید، نصبش کنید و فعالش کنید. این افزونه صفحهٔ تنظیمات نداره و منوی جدیدی هم به پیشخوان اضافه نمی‌کنه. همه‌چی تو همون فهرست برگه‌ها اتفاق می‌افته.

افزونه Simple Page Ordering
افزونه Simple Page Ordering

قدم دوم: جابه‌جا کردن برگه‌ها

برید به برگه‌ها > همه برگه‌ها. از این به بعد کافیه هر برگه رو بگیرید، بکشید و هر جا خواستید رها کنید. بعد از رها کردن، یه نشانگر پردازش کوتاه نشون داده می‌شه و ترتیب جدید ذخیره می‌شه.

جابه‌جا کردن برگه‌ها
جابه‌جا کردن برگه‌ها

قدم سوم: تغییر سلسله‌مراتب (اختیاری)

از نسخهٔ 2.7.0 به بعد، با همین جابه‌جایی می‌تونید سلسله‌مراتب برگه‌ها رو هم عوض کنید و مشخص کنید کدوم برگه زیرمجموعهٔ کدوم برگه باشه.

راهنمای داخلی: اگه جایی گیر کردید، روی زبانهٔ «راهنما» بالا سمت راست صفحه کلیک کنید. افزونه راهنمای کوتاه خودش رو همون‌جا نشونتون می‌ده.

یه نکتهٔ مهم: فیلتر تاریخ و دکمهٔ «صافی» که بالای فهرست برگه‌ها می‌بینید، مال خود وردپرس هستن و ربطی به این افزونه ندارن. این دکمه فقط فهرست رو بر اساس ماه انتشار فیلتر می‌کنه و به ترتیب ذخیره‌شدهٔ برگه‌ها دست نمی‌زنه.

کی‌ها می‌تونن ترتیب رو عوض کنن؟

افزونه به سطح دسترسی کاربرها توجه می‌کنه. فقط کسایی که اجازهٔ ویرایش برگه‌های بقیه رو دارن، یعنی به‌طور پیش‌فرض ویرایشگرها و مدیرها، می‌تونن برگه‌ها رو جابه‌جا کنن. اگه یه نقش کاربری سفارشی ساختید و همین دسترسی رو بهش دادید، اون نقش هم می‌تونه ترتیب رو عوض کنه.

چرا ترتیب تو سایت عوض نشد؟

این پرتکرارترین سؤالیه که دربارهٔ این افزونه پیش میاد. جوابش ساده‌ست: افزونه به نمایش سایت کاری نداره و فقط ترتیب ذخیره‌شده تو وردپرس رو عوض می‌کنه. برای اینکه فهرست برگه‌ها تو سایت هم به همین ترتیب نشون داده بشه، پارامتر orderby کوئری باید روی menu_order باشه.

بلوک‌ها، ابزارک‌ها و ماژول‌های صفحه‌سازی که فهرست برگه نشون می‌دن، معمولاً یه گزینه برای انتخاب نوع مرتب‌سازی دارن. تو بعضی صفحه‌سازها باید این گزینه رو روی «Menu Order» یا «ترتیب دستی» بذارید تا نتیجه رو ببینید.

مرتب کردن انواع نوشتهٔ سفارشی و نوشته‌ها

انواع نوشتهٔ سفارشی: این افزونه فقط مخصوص برگه‌ها نیست. با انواع نوشتهٔ سفارشی سلسله‌مراتبی و انواعی که از page-attributes پشتیبانی می‌کنن هم کار می‌کنه. تو این حالت، گزینهٔ «Sort by Order» به پیوندهای فیلتر بالای فهرست اضافه می‌شه. انتخابش کنید و بعد موارد رو جابه‌جا کنید. اگه نوع نوشته رو خودتون ثبت می‌کنید، کافیه page-attributes رو به supports اضافه کنید:

'supports' => array( 'title', 'editor', 'page-attributes' ),

نوشته‌های معمولی: نوشته‌ها بر اساس زمان انتشار نشون داده می‌شن، نه ترتیب. اگه واقعاً لازم دارید اون‌ها رو هم دستی مرتب کنید، این کد رو تو functions.php قالب یا یه افزونهٔ اختصاصی بذارید:

add_post_type_support( 'post', 'page-attributes' );

اگه سایت فروشگاهی دارید

محصولات ووکامرس برگه حساب نمی‌شن و برای مرتب کردنشون به این افزونه نیازی ندارید. خود ووکامرس، که رایگانه، این امکان رو داره. تو بخش محصولات می‌تونید محصولات رو با کشیدن و رها کردن مرتب کنید و همین ترتیب، ترتیب پیش‌فرض فروشگاه می‌شه. اگه فهرست رو بر اساس دسته فیلتر کنید، می‌تونید ترتیب محصولات هر دسته رو هم جداگونه بچینید.

فقط حواستون باشه که برای دیده شدن این ترتیب تو فروشگاه، باید تو نمایش > سفارشی‌سازی > ووکامرس > کاتالوگ محصولات گزینهٔ «مرتب‌سازی پیش‌فرض» انتخاب شده باشه. اگه قالب بلوکی دارید و سفارشی‌ساز رو تو منو نمی‌بینید، مستقیم برید به آدرس wp-admin/customize.php.

رفع مشکلات رایج

ترتیب بعد از رفرش برمی‌گرده به حالت قبل: معمولاً یعنی درخواست AJAX سمت سرور به نتیجه نرسیده. بعضی هاست‌های اشتراکی این درخواست‌ها رو محدود می‌کنن. تو این حالت با کد زیر تعداد مواردی رو که تو هر درخواست به‌روز می‌شن کم کنید (مقدار پیش‌فرض ۵۰ هست):

add_filter( 'simple_page_ordering_limit', function( $number ) { return 5; } );

همهٔ برگه‌ها تو یه صفحه دیده نمی‌شن: زبانهٔ «تنظیمات صفحه» رو بالای فهرست برگه‌ها باز کنید و تعداد موارد هر صفحه رو بیشتر کنید. این گزینه تو خود وردپرس هست.

جابه‌جایی اصلاً کار نمی‌کنه: احتمالاً یه افزونهٔ دیگه تداخل داره. بعضی کاربرها ناسازگاری با Admin Columns Pro و همین‌طور با Polylang و فیلتر بر اساس طبقه‌بندی رو گزارش کردن. برای پیدا کردن مقصر، افزونه‌های مشکوک رو یکی‌یکی و موقتاً غیرفعال کنید.

نکته برای توسعه‌دهنده‌ها

با فیلتر simple_page_ordering_is_sortable می‌تونید مشخص کنید کدوم انواع نوشته قابل مرتب‌سازی باشن و کدوم نباشن. افزونه یه مسیر REST به اسم simple-page-ordering/v1/page_ordering هم ثبت می‌کنه که برای عوض کردن ترتیب از طریق API به کارتون میاد.

سوالات متداول

برای مرتب کردن برگه‌ها حتماً باید افزونه نصب کنیم؟

نه. خود وردپرس تو بخش ویژگی‌های برگه یه فیلد «ترتیب» داره که می‌تونید باهاش برای هر برگه عدد تعیین کنید. افزونه Simple Page Ordering فقط این کار رو با کشیدن و رها کردن راحت‌تر می‌کنه.

چرا ترتیب برگه‌ها فقط تو پیشخوان عوض شده؟

این افزونه ترتیب ذخیره‌شدهٔ برگه‌ها رو تغییر می‌ده، ولی بخش نمایش‌دهندهٔ برگه‌ها تو سایتتون هم باید از menu_order استفاده کنه. تنظیمات بلوک، ابزارک یا صفحه‌ساز رو بررسی کنید و نوع مرتب‌سازی رو روی «Menu Order» یا «ترتیب دستی» بذارید.

مرتب کردن برگه‌ها ترتیب منوی سایت رو هم عوض می‌کنه؟

نه. ترتیب منوی سایت جداست. اگه فقط می‌خواید جای گزینه‌های منو عوض بشه، باید از بخش «نمایش > فهرست‌ها» یا ویرایشگر سایت استفاده کنید.

افزونه Simple Page Ordering رایگانه؟

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

می‌تونیم محصولات ووکامرس رو هم با این افزونه مرتب کنیم؟

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

جمع‌بندی

اگه سایتتون چندتا برگهٔ محدود داره، فیلد «ترتیب» خود وردپرس کارتون رو راه می‌ندازه. ولی اگه برگه‌ها زیادن، Simple Page Ordering انتخاب خوبیه: رایگانه، تنظیمات نمی‌خواد و مرتب کردن برگه‌ها رو به چندتا کشیدن و رها کردن ساده تبدیل می‌کنه. فقط یادتون باشه برای دیدن نتیجه تو سایت، فهرست برگه‌ها باید بر اساس ترتیب (menu_order) نشون داده بشه. محصولات ووکامرس رو هم با امکان مرتب‌سازی خود ووکامرس بچینید.

نظر شما در این مورد چیه؟

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

    در حال بارگذاری...

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