كيف تبني مكون WordPress الإضافي الخاص بك
نشرت: 2016-07-13قد يبدو الأمر وكأنه مهمة ضخمة لإنشاء مكون إضافي لبرنامج WordPress. هذا صحيح في بعض الحالات - قد تكون بعض المكونات الإضافية معقدة بشكل لا يصدق. ولكن اعتمادًا على الوظيفة التي تتطلع إلى إضافتها ، فإن العديد منها في الواقع سهل الإنشاء إلى حد ما. يمكن إنشاء مكون إضافي بسرعة مع بعض الفهم الأساسي لكيفية عمل كل ذلك.
أين تذهب المكونات الإضافية؟
هيكل مجلد WordPress
قبل بدء التطوير ، من الجيد معرفة مكان المكونات الإضافية. دعنا نلقي نظرة على بنية مجلد WordPress في أدلة التطبيق الأساسية. داخل مجلد wp-content ، سترى دليل المكونات الإضافية. هذا هو المكان الذي ستعيش فيه جميع المكونات الإضافية الفردية الخاصة بك.
يمكن أن تكون المكونات الإضافية في هذا المجلد ملفات فردية أو في أدلة فرعية. عادةً ما تتطلب المكونات الإضافية الأصغر ملفًا واحدًا .php. قد تحتوي المكونات الإضافية المعقدة على أنواع ملفات متعددة (HTML و CSS و JavaScript كلها احتمالات). يُعد إنشاء دليل فرعي مفيدًا لاستضافة الملفات المتنوعة جنبًا إلى جنب مع وظائف .php الخاصة بالمكوِّن الإضافي.

الإجراءات والفلاتر
قبل أن يبدأ إنشاء المكون الإضافي ، من الجيد معرفة بعض الأساسيات للبدء. عندما تبدأ في ترميز المكونات الإضافية الخاصة بك ، فإن أفضل مكان للبدء هو تعلم كيفية عمل الإجراءات والمرشحات. ستكون معرفة الأساسيات مفيدة ولديك المزيد من الأسئلة حول هذا الموضوع ، فإن WordPress Codex يعد موردًا رائعًا.
قبل تطوير البرنامج المساعد
تعد المعلومات الوصفية مهمة للغاية وهي أيضًا المعلومات التي تخبر WordPress بتفاصيل حول المكون الإضافي. تحتوي المكونات الإضافية على خيارات ليتم تثبيتها وحذفها وتنشيطها وإلغاء تنشيطها. من الناحية الفنية ، كل ما تحتاجه هو اسم المكون الإضافي لـ WordPress لإنشاء ملفك كمكوِّن إضافي. ومع ذلك ، فمن الممارسات الجيدة تقديم المعلومات الأخرى لأنها ستكون مفيدة لك ولمستخدميك.
<?php /** * Plugin Name: Example Plugin * Plugin URI: http://mysite.com/ * Description: A brief description about your plugin. * Version: 1.0 (or whatever current version your plugin is on) * Author: Plugin Author's Name * Author URI: Author's website * License: A "Slug" license name e.g. GPL12 */
مكون إضافي بسيط للغاية
يعد البدء على نطاق صغير طريقة جيدة لتسهيل عملية إنشاء المكون الإضافي. لنقم بإنشاء مثال بسيط للغاية. الإجراءات والفلاتر تجعل الأمور تحدث ، لذلك دعونا نضيف سطرًا من النص بعد كل المنشورات لاختبار الأشياء.
من الجيد دائمًا العمل في بيئة تطوير ، وهذا مهم بشكل خاص أثناء تجربة المكونات الإضافية.
أولاً ، قم بإنشاء ملف جديد وتأكد من أنه في المكان الصحيح. انسخ هذا الرمز والصقه في ملف البرنامج المساعد الرئيسي واحفظه. يتم لصق هذا بعد المعلومات الوصفية.
add_action( 'the_content', 'test_example_text' );
function test_example_text ( $content ) {
return $content .= '<p>This is my first plugin!</p>';
}
هذا مثال على الخطاف في العمل الجاد. بالربط في إجراء the_content ، يعمل هذا عندما يعرض WordPress محتوى المنشور. يستدعي WordPress دالة test_example_text المحددة أسفل add_action call .
رؤية البرنامج المساعد أثناء العمل
ربما تكون قد فعلت ذلك من قبل ، ولكن عند تسجيل الدخول إلى مسؤول WordPress ، سترى خيار المكون الإضافي على اليسار. يظهر المكون الإضافي الخاص بنا ، ويحتاج الآن إلى التنشيط. بمجرد تنشيطه ، يظهر في نهاية المنشور.


مكون إضافي أكثر تعقيدًا
يوضح هذا المثال أساسيات كيفية عمل المكونات الإضافية ، ولكن ماذا لو كنت تريد القيام بشيء أكثر فائدة؟ يتم استخدام أنواع المنشورات المخصصة بشكل متكرر في تصميم الموقع المخصص ، لذا فلنبدأ بذلك. هناك مكونات إضافية حالية يمكنك استخدامها ، ولكن إنشاء واحدة من البداية يعد طريقة جيدة لتسهيل تطوير المكونات الإضافية.
ما هو نوع المنشور المخصص في WordPress؟
الصفحات والمنشورات هي أكثر أنواع المحتوى شيوعًا في WordPress ، ولكن ماذا لو كنت تريد شيئًا أكثر تحديدًا؟ قد تكون الصفحات والمنشورات عامة جدًا في بعض الظروف ، وهذا هو سبب سهولة استخدام نوع المنشور المخصص. وخير مثال على ذلك هو نوع المنشور المخصص للمحفظة. الفكرة هي إنشاء منشور عادي مع إرفاق قيمة نوع منشور مختلف به.
كيفية إنشاء موقع محفظة على WordPress
يمكن استخدام صفحة محفظة على موقع ويب لأشياء كثيرة. بحكم التعريف ، هو شيء يستخدم لحفظ المواد مثل الأوراق ، والخرائط ، والرسومات ، والصور ، وما إلى ذلك. محفظة في المصطلحات المالية المرجع ...
يمكنك استدعاء أنواع المنشورات المخصصة الخاصة بك ما تريد. على سبيل المثال ، إذا كنت تدير موقعًا للطعام ، فيمكنك إنشاء نوع منشور وصفة مفيد. يمكن أن يحتوي نوع المنشور هذا على حقول مخصصة مختلفة بهيكل فئة مخصص خاص به.
إنشاء أنواع منشورات مخصصة
أول شيء عليك القيام به هو في الواقع إنشاء نوع المنشور المخصص. باستخدام نفس بنية الملف أعلاه ، دعنا نضيف المجلد وملف .php. بافتراض أن المعلومات الوصفية قد تم إنشاؤها ، فسنضيف وظائفنا بعد الكتلة الوصفية.
سنقوم بإنشاء مكون إضافي لنوع منشور مخصص يسمى "الوصفات" لتوضيح أساسيات إنشاء مكون إضافي أكثر تعقيدًا.
النسخة الأساسية
إذا ألقيت نظرة على المقتطف أدناه ، فهو بسيط جدًا في البداية. سنرى نوع منشور مخصص في القائمة اليسرى للتأكد من أن هذا يعمل. يتم استخدام register_post_type() في وظيفة ، والتي يتم ربطها بالتصرف init . هناك وسيطان هما نوع المنشور المخصص ومصفوفة وسيطات.
function recipe_custom_post_type() {
register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );


النسخة المتطورة
سيعمل هذا الإصدار الأساسي من المكون الإضافي بالفعل ، ومع ذلك ، هناك حاجة إلى مزيد من الوظائف لجعله رائعًا حقًا. على سبيل المثال ، لا تزال التصنيفات مكتوب عليها "إضافة مشاركة جديدة". نريد أن يكون هذا أكثر تحديدًا للوصفة ؛ بعد كل شيء ، هذا هو السبب في أننا لا نستخدم مجرد منشور عادي. يمكن إجراء التخصيصات باستخدام خاصية التسميات.

الآن ، دعنا نخدش ما فعلناه للتو ونستخدمه بدلاً من ذلك:
add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );
function recipe_custom_post_type() {
$labels = array(
'name' => 'Recipes',
'singular_name' => 'Recipe',
'menu_name' => 'Recipe',
'name_admin_bar' => 'Recipe',
'add_new' => 'Add New',
'add_new_item' => 'Add New Recipe',
'new_item' => 'New Recipe',
'edit_item' => 'Edit Recipe',
'view_item' => 'View Recipe',
'all_items' => 'All Recipes',
'search_items' => 'Search Recipes',
'parent_item_colon' => 'Parent Recipes:',
'not_found' => 'No recipes found.',
'not_found_in_trash' => 'No recipes found in Trash.'
);
$args = array(
'public' => true,
'labels' => $labels,
'rewrite' => array( 'slug' => 'recipe' ),
'has_archive' => true,
'menu_position' => 20,
'menu_icon' => 'dashicons-carrot',
'taxonomies' => array( 'post_tag', 'category' ),
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
);
register_post_type( 'recipe', $args );
}
function recipes_messages( $messages ) {
$post = get_post();
$messages['recipe'] = array(
0 => '',
1 => 'Recipe updated.',
2 => 'Custom field updated.',
3 => 'Custom field deleted.',
4 => 'Recipe updated.',
5 => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => 'Recipe published.',
7 => 'Recipe saved.',
8 => 'Recipe submitted.',
9 => sprintf(
'Recipe scheduled for: <strong>%1$s</strong>.',
date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
),
10 => 'Recipe draft updated.'
);
return $messages;
}

شاهد كيف يقرأ النص في الجزء العلوي الآن "إضافة وصفة جديدة"؟ لقد حققنا ذلك من خلال تخصيص "إضافة عنصر جديد" بالنص المطلوب.


هناك الكثير مما يحدث هنا ويتم تفصيل الأمور بشكل جيد عند التعامل مع الحجج. واحد هو واضح بصريا هو خاصية supports . لقد أعلنا هنا أنه سيتم تضمين العنوان والمحرر والمؤلف والصورة المصغرة والمقتطف والحقول المخصصة والتعليقات. يتم عرض هذه في واجهة مستخدم المسؤول وفي بعض أجزاء الواجهة الأمامية أيضًا. تسمح لك خاصية التصنيفات بتعيين تصنيفات مخصصة لنوع المنشور المخصص.

رسائل تفاعل نوع المشاركة
كلما قمت بحفظ أو حذف أو بحث أو ما إلى ذلك ، تتلقى رسالة افتراضية. في وظيفة recipes_messages لدينا ، هناك قائمة بهذه الرسائل. سيضمن تحديد المصفوفة لنوع المنشور المخصص بالرسائل المناسبة قراءة الأشياء بالطريقة التي تريدها لنوع المنشور المخصص. تبدو الأشياء خاصة بالوصفة مع الصياغة ، لذا يتماشى هذا مع نوع المنشور المخصص.

بمجرد الانتهاء من المكون الإضافي الخاص بك ، يمكنك نشره في دليل البرنامج المساعد WordPress حتى يتمكن الآخرون من تنزيله أيضًا. إذا كانت هذه هي الحالة ، فإن تضمين ملف readme.txt مفيد لأولئك الذين يبحثون عن مكون إضافي مثل ملحقك. بشكل أساسي ، سيتضمن هذا الملف اسمك وما يفعله المكون الإضافي ، ولكن يمكنك أيضًا تضمين تفاصيل حول كل مراجعة وتفاصيل حول التحديثات.
كما ترى ، يمكن أن تكون المكونات الإضافية بسيطة جدًا أو معقدة. لا يعد إنشاء مكون إضافي أمرًا صعبًا كما قد يبدو للوهلة الأولى وهي عادة جيدة عند تطوير مواقع WordPress. إنها تتيح سهولة التنظيم والقدرة على إعادة الاستخدام على مواقع متعددة ، مما يجعل تطوير WordPress الخاص بك أكثر كفاءة.

