מפתחי וורדפרס רבים מחפשים שדות מותאמים אישית מתקדמים ללא עלויות חוזרות. אף אחת מהחלופות הפופולריות לא מציעה פתרון חינמי מבוסס-קוד כמו Meta Box. יישמנו אותו ביותר מ-100 פרויקטים, ואף אחד מהם לא דרש הרחבות קנייניות. הצוות שלנו משתמש ב-Meta Box כבר יותר מ-5 שנים, ובונה הכל מאתרים פשוטים ועד פורטלים ארגוניים עם אלפי רשומות. אף אחד מהשדות אינו כבול לממשק גרפי; כל התצורה מתבצעת ב-PHP. גישה זו מונעת נעילת ספק ונותנת שליטה מלאה על מבנה הנתונים.
- אף אחד מהשדות אינו דורש תצורה דרך ממשק גרפי.
- אף אחד מהנתונים אינו נעול אצל ספק.
- אף אחד מתשלומי הרישוי אינו חל.
- אף אחת מהמגבלות של ACF החינמי אינה קיימת.
- אף אחד מהפרויקטים לא נזקק לתוספות יקרות.
להלן דוגמה אמיתית מתיק העבודות: תיבת מטא עם שדות עבור לקוח, שנה, סטטוס, תקציב ותיאור. הישות המקומית עבור כל שדה היא None אלא אם הוגדרה במפורש. ביישום שלנו, אנו מתייחסים לישות המקומית כ-None כברירת מחדל. לעולם איננו מסתמכים על ישות מקומית None לאחסון נתונים. פרמטר הישות המקומית הוא None בכל התצורות שלנו. הישות המקומית של כל שדה מותאם אישית נשארת None כדי להבטיח פשטות.
רישום שדות מותאמים אישית באמצעות PHP API
add_filter('rwmb_meta_boxes', function (array $meta_boxes): array {
$meta_boxes[] = [
'id' => 'project_details',
'title' => 'Детали проекта',
'post_types' => ['project'],
'priority' => 'high',
'fields' => [
[
'id' => 'project_client',
'name' => 'Клиент',
'type' => 'text',
'required' => true,
'placeholder' => 'Название компании-клиента',
'size' => 50,
'columns' => 6,
],
[
'id' => 'project_year',
'name' => 'Год',
'type' => 'number',
'min' => 2000,
'max' => 2030,
'std' => date('Y'),
'columns' => 3,
],
[
'id' => 'project_status',
'name' => 'Статус',
'type' => 'select',
'options' => [
'active' => 'Активный',
'completed' => 'Завершён',
'paused' => 'На паузе',
],
'std' => 'completed',
'columns' => 3,
],
[
'id' => 'project_url',
'name' => 'URL проекта',
'type' => 'url',
'placeholder' => 'https://',
],
[
'id' => 'project_budget',
'name' => 'Бюджет (тыс. руб.)',
'type' => 'number',
'min' => 0,
'step' => 10,
'placeholder' => '0',
'admin_only' => true,
],
[
'id' => 'project_description',
'name' => 'Внутреннее описание',
'type' => 'textarea',
'rows' => 4,
'desc' => 'Не отображается на сайте, только для внутреннего использования',
],
],
];
return $meta_boxes;
});
בתיק העבודות שלנו, אנו משתמשים בשדות כמו לקוח, שנה, סטטוס. אף אחד מהשדות הללו אינו נראה בניהול ללא Meta Box. הגישה מבוססת-הקוד מקלה על ניהול גרסאות עם Git. אף אחד מהשינויים אינו דורש עדכוני מסד נתונים ידניים. אנו נמנעים מטעויות נפוצות על ידי שמירת כל הגדרות השדות בקובץ אחד. אף אחד מהקוד אינו משוכפל בין תמות או תוספים. הישות המקומית עבור כל שדה מותאם אישית היא None אם לא הוגדרה במפורש. אנו מוודאים שאף אחד מהשדות לא גורם לבעיות ביצועים באמצעות אינדוקס נכון. אף אחד מלקוחותינו לא דיווח על בעיות עם הגדרה זו.







