تعد أنواع المنشورات المخصصة أحد العناصر الأساسية التي يجب عليك فهمها إذا كنت ترغب في إنشاء مواقع مرنة ووردية ووردية.
ما هي أنواع المنشورات المخصصة التي تسمح لك بإضافة نوع البيانات الخاص بك ؛ قد تكون مقالة أو أغنية أو فيلمًا أو آلاف الأشياء الأخرى. تسمح لك أنواع المنشورات المخصصة بتصنيف بياناتك وفقًا لاحتياجاتك الفردية ، وهذا بدوره يسمح لك بتحكم أكبر في كيفية تصرف موقعك.
في هذه المقالة سوف نأخذك عبر إنشاء نوع نشر فيلم مخصص لقاعدة بيانات الفيلم.
لإنشاء موقع ويب للأفلام ، نحتاج إلى إعداد قاعدة بيانات. للقيام بذلك دون أنواع المنشورات المخصصة ستكون صعبة للغاية ، وربما تصطدم بتركيب WordPress الموجود لدينا. ومع ذلك ، فإن نوع المنشورات المخصصة لدينا سيكون له قائمة الإدارة الخاصة به وصفحة التحرير المخصصة ، إذا أردنا أن نتمكن حتى من إضافة تصنيفات مخصصة إلى الصفحة مع الأسماء والخصائص التي تناسب المشروع.
أنواع المنشورات المخصصة هي التي تأخذ WordPress من النظام الأساسي للتدوين إلى نظام إدارة المحتوى (CMS) الكامل. يعطوننا الحرية في إنشاء موقع الويب الخاص بفيلمنا بدون أي قرصنة سيئة.
في هذه المقالة ، سأضع كل الشفرة الضرورية لإنشاء نوع منشور مخصص ، ومن ثم سنتناول ذلك سطرًا تلو الآخر حتى تتمكن من معرفة ما يفعله كل جزء وتخصيصه وفقًا لاحتياجاتك.
إليك الرمز الكامل الذي تمت إضافته إلى ملف functions.php الخاص بك:
add_action( 'init', 'register_movie' );function register_movie() {$labels = array('name' => 'Movies','singular_name' => 'Movie','add_new' => 'Add New','add_new_item' => 'Add New Movie','edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie','search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash','menu_name' => 'Movies',);$args = array('labels' => $labels,'hierarchical' => false,'description' => 'Here you will add all the movies for the database','supports' => array( 'title', 'editor', 'thumbnail' ),'taxonomies' => array( 'genre', 'movies', 'year' ),'public' => true,'show_ui' => true,'show_in_menu' => true,'menu_position' => 5,//'menu_icon' => the image link here,'show_in_nav_menus' => true,'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,'query_var' => true,'can_export' => true,'rewrite' => true,'capability_type' => 'post');register_post_type( 'movie', $args );}
كما يمكنك أن ترى جزءًا كبيرًا من الكود يبدأ بإنشاء نوع منشور مخصص ولكن إذا فهمته ، فستتمكن من الحصول على هذا الرمز وتكييفه مع مشروعاتك. في السطر الأول ، نقوم بتوصيل الوظيفة بنوع النشر المخصص لدينا إلى init وهذا يعني أن وظيفة لدينا ستنطلق عندما يقوم WordPress بذلك حتى يكون لدينا دائما في لوحة المعلومات لدينا:
add_action( 'init', 'register_movie' );
في السطر التالي ، نبدأ بالإعلان عن اسم وظيفتنا ومتغير مع كل التصنيفات التي سترتبط بنوع نشر الفيلم بحيث يمكن تخصيص كل شيء.
أول شيء نعلنه في التصنيفات هو اسم نوع النشر المخصص لدينا ، بصيغة الجمع والمفرد:
'name' => 'Movies','singular_name' => 'Movie',
في الخطين التاليين ، يتعين علينا تحديد " إضافة نص جديد" (إذا كنا نرغب في تغييره) ، ثم قمنا بتعيين Add New Movie بحيث عندما نضيف فيلمًا جديدًا ، فلدينا تجربة مخصصة بدلاً من إضافة فيلم وامتلاك العنوان "إضافة وظيفة جديدة".
'add_new' => 'Add New','add_new_item' => 'Add New Movie',
بعد تصنيفات إنشاء فيلم جديد ، نحتاج إلى تعيين التصنيفات للتحرير ، ونص العنصر الجديد (افتراضيًا هو New Post / New Page) ونحتاج أيضًا إلى تعيين نص المشاركة في العرض:
'edit_item' => 'Edit Movie','new_item' => 'New Movie','view_item' => 'View Movie',
الآن في التصنيفات ، ننتقل إلى إمكانات البحث في مشرف wordpress وتسمياتنا لذلك. نحتاج إلى تعيين تصنيفات عند البحث في الأفلام ، وعند عدم العثور على أي نتائج ، وكذلك عند عدم العثور على أي نتائج في المهملات:
'search_items' => 'Search Movies','not_found' => 'No movies found','not_found_in_trash' => 'No movies found in Trash',
العلامة الأخيرة تتحدث عن نفسها ، وهنا يجب أن نضع الاسم الذي نريد أن يكون له نوع المنشور المخصص في واجهة المستخدم القائمة ، وفي هذه الحالة نحن نلتزم فقط بـ "الأفلام":
'menu_name' => 'Movies',);
الآن علينا أن ننتقل إلى حججنا ، لأنني خلقت متغيرًا آخرًا سيحمل جميع الحجج ، لقد أطلقت عليه اسم args.
الحجة الأولى التي تطلبها هي الملصقات وكل ما يتعين علينا فعله هو الإشارة إلى متغير التسميات الذي قمنا بفحصه ، مثل:
$args = array('labels' => $labels,
في السطر التالي ، نحتاج إلى تعيين ما إذا كان نوع المنشور سيكون هرميًا مثل الصفحات أم لا (مثل المشاركات). في حالتي لا أريد أن تكون الأفلام هرمية ، لذا قمت بتعيينها إلى false. السطر التالي هو مجرد وصف اختياري لنوع النشر.
'hierarchical' => false,'description' => 'Here you will add all the movies for the database',
السطر التالي هو واحد مهم. هنا يجب علينا تحديد ما سوف يدعمه نوع المنشورات المخصّصة ، ما هي الحقول التي ستحصل عليها. خيارات هذا الحقل هي:
في حالتي وبالنسبة لنوع المنشور الخاص بي ، لا أريد سوى دعم العنوان ومحرر WYSIWYG والصورة المصغرة والتعليقات والقيام بذلك أحتاج إلى إضافة مصفوفة في هذا السطر ، مثل:
'supports' => array( 'title', 'editor', 'thumbnail','comments' ),
في السطر التالي ، نحتاج إلى تحديد تصنيفات المنتجات التي ستستخدمها ، ونظرًا لأننا سننشئ تصنيفات مُخصَّصة ، وهي تلك التي ستتم إضافتها في هذا السطر:
'taxonomies' => array( 'genre', 'actors', 'year' ),
الخطوط الثلاثة التالية لها علاقة برؤية نوع الوظيفة في منطقة الإدارة وكل ما أقوم به هو تعيين كل ذلك على صواب:
'public' => true,'show_ui' => true,'show_in_menu' => true,
بعد ذلك ننتقل إلى موضع القائمة التي يجب أن يظهر فيها نوع المشاركة. هنا لدينا أيضًا الكثير من الخيارات للاختيار من بينها:
في حالتي كنت أرغب في ظهور الأفلام فورًا بعد التدوينات ، لذا قمت بتعيين موضع القائمة إلى 5 ، على النحو التالي:
'menu_position' => 5,
في السطر التالي ، نعتني بالرمز ، يمكننا تعيين أيقونة خاصة بنا أو تركها فارغة ، وسوف نحصل على رمز المشاركات بدلاً من ذلك ، الخط بعد ذلك يعتني بما نريد أن يظهر هذا النوع من النشر للاختيار في قوائمنا. .
'menu_icon' => //the image link here,'show_in_nav_menus' => true,
في الأسطر الثلاثة التالية ، نضيف إمكانات نوع المشاركة ؛ حددنا أولاً ما إذا كنا نريد استعارة نوع المشاركة هذا على الواجهة الأمامية ، ثم نقرر ما إذا كنا نريد استبعاد نتائج نوع المشاركات من عمليات البحث وأخيرًا نقرر ما إذا كنا نريد أرشفة لنوع نشر الأفلام:
'publicly_queryable' => true,'exclude_from_search' => false,'has_archive' => true,
في السطر التالي ، نقوم بتعيين متغير الاستعلام لنوع النشر الخاص بنا ، وسيحدد هذا كيفية ظهور عنوان URL ، لهذا الخيار لدينا ثلاثة معايير ممكنة: يمكننا تعيينه إلى true ومن ثم يمكننا الوصول إلى الفيلم باستخدام /؟ movie = name_of_movie. يمكننا تعيينه إلى سلسلة بحيث يتم استبدال الفيلم في عنوان URL بأي شيء نريده ، مثل "show" ، وسيكون علينا استخدام /؟ show = name_of_movie للوصول إلى الفيلم نفسه ؛ الخيار الأخير هو تعيينها إلى false ومن ثم تجعل من المستحيل الوصول إلى فيلم باستخدام query_var. في حالتي ، ومع الأخذ في الاعتبار الخيار الأخير ، قمت بتعيين طلب البحث var على true حتى نتمكن من الوصول إليه باستخدام query_var للفيلم:
'query_var' => true,
في السطر التالي ، نقرر ما إذا كنا نريد أن تكون الأفلام قابلة للتصدير ، ثم نختار سبيكة لهذا النوع من المنشورات ، وفي حالتي أنا فقط تمسك بحقيقية أن يكون "فيلم" مثل السلاجقة ولكن يمكنك اختيار أي سلسلة لتكون سبيكة ولديك في الواقع الكثير من الخيارات ، وهذه المعلمة هي واحدة واسعة النطاق.
'can_export' => true,'rewrite' => true,
إن السطر الأخير من حججنا هو المكان الذي نضبط فيه نوع إمكانية النشر لدينا ، وبما أنني أريد أن يكون لها نفس الكلمات مثل النشرات العادية ، فقد أعطيتها فقط قيمة المشاركة ، مثل:
'capability_type' => 'post');
يتم تنفيذ التسميات والحجج لدينا ، كل ما نحتاج إلى القيام به الآن هو تسجيل نوع المشاركة لدينا ووظيفة register_post_type تأخذ معلمتين ، الأولى هي اسم نوع المنشورات المخصصة (هذا بحد أقصى 20 حرفًا وبدون أحرف كبيرة أو مسافات) والثانية هي الحجج لنوع النشر ، وفي هذا واحد سنضع فقط متغير arg الخاص بنا:
register_post_type( 'movie', $args );}
يتم إنشاء نوع المنشور الخاص بنا وتشغيله بشكل كامل وكل ما تحتاجه لعرضه في صفحاتك هو بعض السحر wp_query .
آمل أن تتمكن من معرفة السبب في أن الكثير من الأشخاص يستخدمون أنواع المنشورات المخصصة في WordPress.
كان الهدف من هذه المقالة هو إعطائك فهمًا لعملية إنشاء نوع منشور مخصص ، وإعطائك نقطة بداية لإنشاء أنواع منشورات مخصصة رائعة خاصة بك.
صورة مميزة / صورة مصغرة ، صورة مخصصة من ATOMIC Hot Links، عبر Flickr.