يمكن أن تحتوي المقالات في ووردبريس على واحدة من عدة حالات. تحدد حالة مقال معين كيف يتعامل ووردبريس مع هذا المقال. على سبيل المثال، يتم تعيين حالة "منشور" (publish) للمقالات العامة القابلة للعرض للجميع، بينما يتم تعيين حالة "مسودة" (draft) للمسودات. يتم تخزين الحالة في حقل post_status داخل جدول wp_posts.
يوفر ووردبريس 8 حالات مدمجة جاهزة للاستخدام. وقد منحك ووردبريس 3.0 القدرة على إضافة حالة مقال مخصصة خاصة بك واستخدامها بطرق مختلفة.
سير العمل (Workflow)
يوفر ووردبريس ميزات مدمجة تمكن بعض المستخدمين (بناءً على الأدوار والصلاحيات لديهم) من مراجعة المحتوى المقدم إلى الموقع قبل نشره. يُعرف هذا عادةً باسم "سير العمل" (Workflow). تعتمد ميزات سير العمل في ووردبريس على قيمة حقل post_status الخاص بالمقال لمعرفة الخطوة التي توجد فيها المقالة حالياً ضمن عملية سير العمل.
معظم المستخدمين على دراية بالفعل بحالتي سير عمل على الأقل:
- المقالات المنشورة والمرئية للجميع (بما في ذلك المستخدمون غير المسجلين) تمنح حالة
النشر (publish). - المسودات التي لم يتم نشرها بعد يتم تعيين حالة
المسودة (draft)لها.
داخلياً، يقوم ووردبريس بتعيين حالة المقال إلى publish عندما تنقر على زر "نشر"، ويقوم ووردبريس بتعيين حالة المقال إلى draft عندما تنقر على زر "حفظ مسودة". وبالمثل، إذا كان موقعك يضم مستخدمين مُمنَحين صلاحية تتحرير المقالات (edit_posts) ولكن ليس لديهم صلاحية نشر المقالات (publish_posts)، فعندما يبدأ هؤلاء المستخدمون في كتابة مقال جديد، سيعرض ووردبريس زر "إرسال للمراجعة" بدلاً من زر "نشر". وبالمثل، يقوم ووردبريس بعد ذلك بتعيين حالة قيد المراجعة (pending) للمقال الذي أنشأه هذا المستخدم عندما يضغط على هذا الزر.
يمكن أيضاً تعيين حالة المقال في شاشة الإدارة وشاشة إضافة مقالات جديدة من قبل أي مستخدم لديه الصلاحية اللازمة لتصنيف المقال بالحالة المعنية. داخلياً، يتم تخزين كل هذه المقالات في نفس المكان (جدول wp_posts)، ويتم التمييز بينها بواسطة عمود يُسمى post_status.
الحالات الافتراضية (Default Statuses)
هناك 8 حالات رئيسية للمقالات يستخدمها ووردبريس بشكل افتراضي.
منشور (Publish)
قابل للعرض للجميع. (publish)
مستقبلي / مجدول (Future)
مجدول للنشر في تاريخ مستقبلي. (future)
مسودة (Draft)
مقال غير مكتمل يمكن عرضه من قبل أي مستخدم لديه دور مستخدم مناسب. (draft)
قيد المراجعة (Pending)
في انتظار مستخدم لديه صلاحية publish_posts (عادةً مستخدم مُعيّن له دور المحرر (Editor)) ليقوم بنشره. (pending)
خاص (Private)
قابل للعرض فقط لمستخدمي ووردبريس على مستوى المدير (Administrator). (private)
سلة المهملات (Trash)
المقالات الموجودة في سلة المهملات يتم تعيين حالة trash لها. (trash)
مسودة تلقائية (Auto-Draft)
النسخ السابقة (Revisions) التي يحفظها ووردبريس تلقائياً أثناء قيامك بالتحرير. (auto-draft)
موروث / متوارث (Inherit)
يُستخدم مع المقالات الفرعية (مثل المرفقات والنسخ السابقة) لتحديد الحالة الفعلية من المقال الأساسي (الأب). (inherit)
حالة مخصصة (Custom Status)
تنبيه: هذه الوظيفة لا تقوم بإضافة حالة المقال المسجلة إلى شاشة الإدارة. هذه الميزة قيد التطوير المستقبلي. يُرجى الرجوع إلى تذاكر تراك #12706. ضع في اعتبارك خطاف الإجراء (action hook) post_submitbox_misc_actions لإضافة هذا المعامل.
الحالة المخصصة هي حالة مقال تقوم بتعريفها بنفسك.
تتم إضافة حالة مخصصة إلى ووردبريس عبر الدالة register_post_status(). تتيح لك هذه الدالة تحديد حالة المقال وكيفية عملها داخل ووردبريس.
إليك مثال أساسي لإضافة حالة مقال مخصصة تسمى "غير مقروء" (Unread):
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' );
الموارد (Resources)
مواضيع ذات صلة (Related)
توثيق الأكواد (Code Documentation)
- الدالة: get_post_status() – استرجاع حالة المقال بناءً على معرف المقال (Post ID).