تقوم دالة register_taxonomy بإضافة أو استبدال تصنيفاً, ويوصي ووردبريس توخي الحذر عند إضافة تصنيف حتى لايتعارض اسمه مع متغير ( PHP VARIABLES ) من المتغيرات المستخدمة في برمجية ووردبريس نفسه , ويوفر ووردبريس قائمة بهذه المتغيرات هنا. وبشكل جزئي ابتعد عن استخدام الأحرف الكبير في أسماء المتغيرات.
صيغة الدالة Function syntax
يتم كتابة الدالة register_taxonomy هكذا
<?php register_taxonomy($taxonomy,$object_type,$args); ?>
المعاملات Parameters
taxonomy$ :
string | Data type |
required | Required/Optional |
هو إسم التصنيف ويجب أن يحتوي على أحرف صغيرة small letters والشرطة التحتية
Underscore ولايجب أن يزيد عن 32 رمز |
Description |
لايوجد قيمة افتراضية | Default |
object_type$ :
array/string | Data type |
required | Required/Optional |
اسم الكائن المستخدم في التصنيف (نوع المحتوى) وهناك كائنات مدمجة built-in في ووردبريس
إقرأ أسفل الجدول |
Description |
لايوجد قيمة افتراضية | Default |
أنواع الكائنات المدمجة Built-in Objects
- Post Type
- Custom Post Type
تنقسم الـ Post Type إلى :
- Post
- Page
- attachment
- revision
- nav_menu_item
بينما الـ Custom Post Type إلى :
- Custom Post : ويتم تسجيله باستخدام الدالة ()register_post_type أو ()register_taxonomy_for_object_type ويجب أن يكون اسم الـ custom post بالأحرف الصغير Small Letters ولا يحتوي إي مسافات.
- null : عندما تكون قيمة object_type$ هي null فلن يتم تخصيص أي post للـتصنيف المخصص Custom Taxonomy ولن يظهر في صفحة الأدمن
args$
array/string | Data type |
optional | Required/Optional |
مصفوفة من الوسائط التي يتم تمريرها للدالة ولمعرفة هذه الوسائط إقرأ أسفل الجدول | Description |
لايوجد قيمة افتراضية | Default |
الوسائط Arguments
label
string | Data type |
optional | Required/Optional |
إسم التصنيف بصيغة الجمع جاهز للترجمة | Description |
يتم تخطي هذه القيمة في حالة تعريف قيمة المفتاح name في الوسيط labels | Default |
[highlight background=”” color=””]الوسيط labels عبارة عن مصفوفة ترابطية Associative Array لذا نطلق علي الكلمة name مفتاح [/highlight]
labels
array | Data Type |
optional | Required/Optional |
تقوم بإضافة جميع أسماء الخاصة بالتصنيف | Description |
Default |
تفصيل الـ key/value الخاصة بالمصفوفة labels
Default | Description | Key |
Post tags , Categories
|
الاسم العام للتصنيف ودائما يكون جمع | name |
post tag, category | الاسم المفرد للتصنيف | singular_name |
إذا لم يتم تعريف هذه القيمة سيتم عرض القيمة التي يتم تخصيصها للمفتاح name | الاسم الذي يظهر عند إضافى التصنيف للقوائم | menu_name |
All Tags, All Categories
|
الإسم الخاص بمجموعة التصنيفات | all_items |
Edit Tag, Edit Category
|
الاسم الخاص بتحرير التصنيف | edit_item |
View Tag, View Category | الاسم الخاص بزر عرض التصنيف | view_item |
Update Tag, Update Category
|
الاسم الخاص بزر تحديث التصنيف في قسم التحرير السريع Quick Edit | Update_item |
Add New Tag, Add New Category
|
الاسم الخاص بإضافة تصنيف جديد | add_new_item |
New Tag Name,New Category Name | الاسم الخاص بحقل كتابة الاسم الجديد للتصنيف | new_item_name |
null or Parent Category
|
عند إضافة تصنيفاً جديداً من داخل صفحة تحرير المقال Edit Post يظهر خياراً لتحديد التصنيف الأب لهذا التصنيف.
ويكون هذا الأسم هو الذي يظهر في قائمة تحديد التصنيف الأب ولا يستخدم هذه المفتاح مع التصنيفات التي ليس لها تركيب هرمي non-hierarchical |
parent_item |
:Parent Category | تقوم بنفس وظيفة parent_item ولكن يتم إضافة colon (نقطتين) في النهاية | parent_item_colon |
Search Categories, Search Tags
|
الإسم الخاص بحقل البحث عن التصنيفات | search_items |
null, Popular Tags
|
السم الخاص بقسم التصنيفات الأكثر شعبية وهذا المفتاح مخصص فقط للتصنيفات التي تتمتع بالتركيب الهرمي hierarchical مثل الوسوم tags ويظهر فقط في حالة استخدام الوسوم | popular_items |
Separate tags with commas
|
في صفحة تحرير المقال edit post يوجد قسم لإضافة الوسوم تحت هذه القسم يوجد نص يقول “إفصل بين الوسوم بفواصل ” وبالتالي هذا المفتاح مسؤل عن كتابة هذا النص ويستخدم مع التصنيفات ذات التركيب الهرمي | separate_items_with_commas |
Add or remove tags | في حالة تعطيل خاصية الـ JavaScript من المتصفح يتغير شكل مربع إضافة وحذف الوسوم الموجود في صفحة تحرير المقال edit post ويكون هذا هو الإسم الذي يظهر في هذا القسم. ويستخدم هذا المفتاح مع التصنيفات ذات التركيب الغير هرمي فقط non-hierarchical | add_or_remove_items |
Choose from the most used tags
|
في صفحة تحرير المقال edit post يوجد في قسم إضافة الوسوم خياراً للإختيار من الوسوم الأكثر استخداماً, لذا فهذا المفتاح مسؤل عن تحديد هذا النص. وهذا المفتاح مخصص فقط للتصنيفات التي تتمتع بالتركيب الهرمي hierarchical مثل الوسوم tags | choose_from_most_used |
No tags found. , No categories found.
|
في صفحة تحرير المقال edit post يوجد في قسم إضافة الوسوم خياراً للإختيار من الوسوم الأكثر استخداماً, فعند النقر عليه بالماوس في حالة عدم وجود وسوم يظهر نص “لا توجد وسوم” كذالك بالنسبة للفئات categoreis | not_found |
public
في البرمجة الكائنية OOP يوجد مايسمى بقابلية الرؤية للمتغيرات والدوال PHP Visibility ويكون public أحد خيارات الرؤية ويستخدم هذا الوسيط للتحكم في هذه الخاصية.
Boolean | Data Type |
Optional | Required/Optional |
لتحديد ما إذا كان التصنيف يمكن قراءة محتوياته علناً.
يجب أن تعرف ماهي الـ Public Visibility في PHP |
Description |
True | Default |
show_ui
Boolean | Data type |
Optional | Required/Optional |
تحديد إمكانية ظهور التصنيف في صفحة الأدمن | Description |
إذا لم يتم تحديد القيمة, تكون القيمة الإفتراضية هي القيمة المخصصة للوسيط public | Default |
show_in_menu
Boolean | Data Type |
Optional | Required/Optional |
لتحديد مكان ظهور التصنيف في صفحة الأدمن. ويجب أن يأخذ الوسيط show_ui القيمة true | Description |
يأخذ قيمة الوسيط show_ui
إذا كانت القيمة : 1- false : لايظهر في صفحة الأدمن 2- true : يظهر كقائمة فرعية لـ post type المخصص للتصنيف |
Default |
show_in_nav_menu
Boolean | Data Type |
Optional | Required/Optional |
في حالة true يتم تمكين إضافة التصنيف لقائمة تصفح الموقع | Description |
إذا لم يتم تحديد القيمة تصبح القيمة الإفتراضية هي القيمة المخصصة للوسيط public | Default |
show_tagcloud
Boolean | Data Type |
Optional | Required/Optional |
للسماح لسحابة الوسوم Tag Cloud باستخدام هذا التصنيف | Description |
إذا لم يتم تحديد القيمة, تكون القيمة الإفتراضية هي القيمة المخصصة للوسيط show_ui | Default |
show_in_quick_edit
Boolean | Data Type |
Optional | Required/Optional |
للتحكم في ظهور التصنيف في قسم التصنيفات عند عمل تحرير مجمع Bulk Edit لمجموعة من المقالات أو عند عمل تحرير سريع لمقال Quick Edit
1- التحرير المتعدد Bulk Edit 2- التحرير السريع Quick Edit |
Description |
إذا لم يتم تحديد القيمة, تكون القيمة الإفتراضية هي القيمة المخصصة للوسيط show_ui | Default |
meta_box_cb
callback | Data Type |
Optional | Required/Optional |
قم هنا بتمرير دالة استدعاء callback function إذا أردت التحكم في شكل وظهور المربع الوصفي meta box للتصنيفات .
هل لاحظ عند كتابة مقال جديد وجود مربع وصفي لتحديد التصنيف الذي ينتمي إليه المقال على شكل مربعات تحديد check box لذلك وظيفة الـ meta_box_cb أنها تقوم بتمرير دالة للتحكم في شكل هذا المربع الوصفي .. مثلا يمكن أنك تريد عرض التصنيفات كقائمة منسدلة drop down menu وليس مربعات تحديد |
Description |
تقوم باستخدام الشكل الافتراضي لعرض المربع الوصفي | Default |
show_admin_column
Boolean | Data Type |
Optional | Required/Optional |
نلاحظ في صفحة المقالات Posts في صفحة الأدمن Dashboard يوجد عامود لعرض التصنيفات التابع لها المقال.
لذا فوظيفة هذا الوسيط أنه يقوم بإضافة العامود الخاص بالتصنيفات التي ينتمي لها المقال
|
Description |
false | Default |
description
string | Data Type |
Optional | Required/Optional |
اضافة وصف للتصنيف | Description |
“” | Default |
hierarchical
Boolean | Data Type |
Optional | Required/Optional |
هل التصنيف يسمح بالتركيب الهرمي مثل الفئات Categories أو لا يسمح بها مثل الوسوم Tags | Description |
false | Default |
update_count_callback
callback | Data Type |
Optional | Required/Optional |
قم هنا باضافة دالة استدعاء callback function يتم استدعاءها في حالة تحديث عدد الـ Post-Types التابع لها التصنيف | Description |
None ولكن يجب أن تقرأ هذا الموضوع للأهمية | Default |
query_var
Boolean or string | Data Type |
Optional | Required/Optional |
يستخدم هذا الوسيط للتحكم فيما إذا كنت تريد الحصول على معلومات التصنيف (متغيرات التصنيف) عن طريق استخدام الـ query_var أم لا. يجب أن تعرف ما هي الـ query_var؟
|
Description |
taxonomy$ | Default |
rewrite
Boolean/Array | Data Type |
Optional | Required/Optional |
يقوم هذا الوسيط بالتحكم في امكانية اعادة كتابة الروابط لتأخذ شكل الروابط الصديقة لمحركات البحث “Pretty Permalinks” . وووردبريس يتيح لك امكانية استخدام هذه الخاصية من صفحة اعدادت الروابط الدئمة Permalinks . ففي حالة كانت القيمة لهذا الوسيط هي false يتم تعطيل هذه الخاصية. أما إذا أردت الاستفادة منها فيجب تمرير مصفوفة من المتغيرات التالية :
(e.g. http://www.example.com/books/)
إذا كان الرابط الدائم للتصنيف يبدأ بقاعدة ثابتة مثل ‘blog/’ فإنه عند استخدام true سيصبح الرابط الدائم بهذا الشكل (e.g. http://www.example.com/blog/books/) أما استخدام false يكون شكل الرابط الدائم هو (e.g. http://www.example.com/books/)
في حالة إذا كان التصنيف من النوع الهرمي hierarchy فإن استخدام القيمة true يسمح بظهور هذا التركيب الهرمي أيضاً في الروابط. مثلا إذا كان التصنيف “news” هو التصنيف الأب والتصنيف “sport news” هو التصنيف الابن يكون شكل الرابط الدائم للتصنيف الإبن هو (e.g. http://www.example.com/news/sport-news/) أما إذا كانت القيمة false يكون شكل الرابط الدائم هو (e.g. http://www.example.com/sport-news/)
[highlight background=”” color=””]هذه النقطة صعبة الفهم لمن ليس له دراية بكيفية إعادة صياغة الروابط Rewrite URLs[/highlight] وهذه النقطة تحديداً تحتاج موضوع منفصل من خلاله نشرح واجهة إعادة صياغة الروابط في ووردبريس WordPress Rewrite API حتى تستطيع استيعاب الوظيفة الحقيقية لـ ep_mask. أما في حالة تعريف ep_mask يجب عمل استثارة flush (إعادة تشغيل) لقواعد إعادة صياغة الروابط عن طريق: 1- إما الذهاب لصفحة اعدادات الروابط الدائمة Permalinks Settings وعمل إعادة حفظ للتغييرات. 2- أو باستدعاء الدالة ()wp_rewite->flush_rules$ ويتم هذا مرة واحدة وليس في كل مرة تقوم بتفعيل القالب أو الإضافة |
Description |
false | Default |
capabilities
array | Data Type |
Optional | Required/Optional |
ووردبريس يتيح لمدير الموقع بتحديد صلاحيات Roles المستخدمين والتي تم شرحها في موضوع صفحة إدارة الأعضاء Users Screen . ولكل نوع من هذه الصلاحيات مجموعة من القدرات Capabilities . بمعنى أن مستخدم ذو صلاحية محرر له إمكانية تحرير المقالات Edit Posts .
من هذا المنطلق يتم تمرير مصفوفة بها مجموعة من الوسائط التي تحدد قدرات المستخدمين كالآتي
|
Description |
Default |