يمكن أن تكون للمنشورات في WordPress إحدى حالات متعددة. تحدد حالة منشور معين كيفية تعامل WordPress مع ذلك المنشور. فعلى سبيل المثال، تُعيَّن للمنشورات العامة التي يمكن للجميع عرضها حالة النشر، بينما تُعيَّن للمسودات حالة المسودة. تُخزَّن الحالة في الحقل post_status في جدول wp_posts.
يوفر WordPress ثماني حالات مضمّنة يمكنك استخدامها. وقد أتاح لك WordPress 3.0 إمكانية إضافة حالة منشور مخصصة خاصة بك واستخدامها بطرق مختلفة.
سير العمل
يوفر WordPress ميزات مضمّنة تمكّن بعض المستخدمين (بناءً على أدوارهم وقدراتهم) من مراجعة المحتوى المُرسل إلى الموقع قبل نشره. يُسمّى هذا عادةً “سير العمل.” تعتمد ميزات سير العمل في WordPress على قيمة الحقل post_status للمنشور لمعرفة الخطوة الحالية التي يوجد فيها المنشور ضمن عملية سير العمل.
معظم المستخدمين على دراية مسبقًا بحالتين على الأقل من حالات سير العمل:
- تُمنح المنشورات المنشورة والمرئية للجميع (بما في ذلك المستخدمون الذين سجّلوا الخروج) حالة
النشر. - تُعيَّن للمسودات التي لم تُنشر بعد حالة
المسودة.
داخليًا، يعيّن WordPress حالة المنشور إلى publish عند النقر على زر “نشر”، ويعيّن WordPress حالة المنشور إلى draft عند النقر على زر “حفظ المسودة”. وبالمثل، إذا كان لدى موقعك مستخدمون ممنوحو قدرة edit_posts لكن ليس لديهم قدرة publish_posts، فعندما يبدأ هؤلاء المستخدمون بكتابة منشور جديد، سيعرض WordPress زر “إرسال للمراجعة” بدلًا من زر “نشر”. وبالمثل، يعيّن WordPress للمنشور الذي أنشأه ذلك المستخدم حالة قيد الانتظار عند ضغطه على ذلك الزر.
يمكن أيضًا تعيين حالة المنشور في شاشة الإدارة وشاشة إضافة منشورات جديدة بواسطة أي مستخدم يملك القدرة اللازمة لتعيين المنشور إلى الحالة المحددة. داخليًا، تُخزَّن جميع هذه المنشورات في المكان نفسه (جدول wp_posts)، ويُميَّز بينها بواسطة عمود يُسمّى post_status.
الحالات الافتراضية
هناك 8 حالات رئيسية للمنشورات يستخدمها WordPress افتراضيًا.
منشور
يمكن للجميع عرضه. (publish)
مستقبلي
مجدول للنشر في تاريخ مستقبلي. (future)
مسودة
منشور غير مكتمل يمكن لأي شخص لديه دور مستخدم مناسب عرضه. (draft)
قيد الانتظار
بانتظار مستخدم لديه قدرة publish_posts (عادةً مستخدم مُعيّن له دور المحرر) لنشره. (pending)
خاص
يمكن لمستخدمي WordPress على مستوى المسؤول فقط عرضه. (private)
سلة المهملات
تُعيَّن للمنشورات الموجودة في سلة المهملات حالة trash. (trash)
مسودة تلقائية
مراجعات يحفظها WordPress تلقائيًا أثناء تحريرك. (auto-draft)
موروث
يُستخدم مع منشور فرعي (مثل المرفقات والمراجعات) لتحديد الحالة الفعلية من المنشور الأصلي. (inherit)
حالة مخصصة
تنبيه:
لا تضيف هذه الدالة حالة المنشور المسجّلة إلى شاشة الإدارة. هذه الوظيفة قيد التطوير المستقبلي. يُرجى الرجوع إلى تذكرة Trac رقم #12706.
ضع في اعتبارك خطاف الإجراء post_submitbox_misc_actions لإضافة هذه المعلمة.
الحالة المخصصة هي حالة منشور تحددها بنفسك.
تتم إضافة حالة مخصصة إلى WordPress عبر الدالة register_post_status(). تتيح لك هذه الدالة تعريف حالة المنشور وكيفية عملها داخل WordPress.
إليك مثالًا أساسيًا لإضافة حالة منشور مخصصة تُسمّى “غير مقروء”:
function custom_post_status(){
register_post_status( 'unread', array(
'label' => _x( 'Unread', 'post' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Unread (%s)', 'Unread (%s)' ),
) );
}
add_action( 'init', 'custom_post_status' );
الموارد
ذات صلة
توثيق التعليمات البرمجية
- الدالة: get_post_status() – استرداد حالة المنشور استنادًا إلى معرّف المنشور.