שדות ותבניות של ProcessWire: הגדרה, סוגים, טיפים לאופטימיזציה

תצורה לקויה של שדות ותבניות ProcessWire הופכת את הפיתוח לתיקונים אינסופיים: נתונים כפולים, שאילתות איטיות ובלגן מבני. אנחנו מגדירים שדות ותבניות כך שהארכיטקטורה תהיה הגיונית וניתנת להרחבה מההתחלה. הצוות שלנו מספק פרויקטים סוהר—מבחירת סוגי שדות ועד אופטימיזציה של שאילתות—ומבטיח ביצועים יציבים ותחזוקה עתידית קלה.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
שדות ותבניות של ProcessWire: הגדרה, סוגים, טיפים לאופטימיזציה
פשוט
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1307
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

שדות ותבניות הם הבסיס של כל פרויקט ProcessWire. מבנה לא נכון מוביל לתיקונים מאולתרים: קשרים מסובכים, נתונים כפולים, שאילתות N+1 איטיות. לדוגמה, בפרויקט אחד ללא הגדרת FieldtypePage נכונה, נאלצנו להריץ 15 שאילתות במקום אחת, מה שהגדיל את ה-TTFB ב-400 אלפיות השנייה. עיצוב שדות משתלם פי עשרה: הפיתוח מואץ ב-30–50%, והתחזוקה הופכת לפשוטה יותר. צברנו ניסיון על 15+ פרויקטים, ובכל פעם הארכיטקטורה הנכונה חסכה ללקוח לפחות 40 שעות עבודה ראשונית. צרו קשר לקבלת ייעוץ לפרויקט שלכם.

סוגי שדות: מה לבחור לכל משימה

שדה מגדיר את הסוג ואת שיטת האחסון. ל-ProcessWire יש למעלה מ-20 סוגים מובנים. להלן טבלה של הנפוצים ביותר:

סוג שדה אחסון מתי להשתמש
FieldtypeText VARCHAR כותרות, שמות קצרים
FieldtypeTextarea TEXT מאמרים, תיאורים ללא HTML
FieldtypeTextareaLanguage TEXT (לפי שפה) טקסטים רב-לשוניים
FieldtypeImage טבלה נפרדת תמונות עם טקסט חלופי
FieldtypeFile טבלה נפרדת קובצי PDF, מסמכים
FieldtypePage INT/טבלה קשרים בין עמודים
FieldtypeRepeater עמודי ילדים בלוקים חוזרים (למשל, יתרונות)
FieldtypeOptions INT רשימה נפתחת
FieldtypeCheckbox INT(1) כן/לא
FieldtypeInteger INT גיל, כמות
FieldtypeFloat FLOAT מחירים, דירוג
FieldtypeDatetime INT (חותמת זמן unix) תאריך פרסום

FieldtypePage מאיץ את הפיתוח פי 5 בהשוואה לשאילתות SQL ישירות, ו-Repeater יכול להחליף עד 10 תבניות נפרדות. בחירת הסוג הנכון מפחיתה את מספר השדות ב-20–30% ומבטלת טבלאות מיותרות.

יצירת שדות וטעויות נפוצות

שדות נוצרים ב-Setup → Fields → Add New. העיקר הוא להגדיר נכון את ה-Name (לטינית, עם קו תחתון) ואת ה-Label. טעות נפוצה היא שימוש בשמות מכונה ארוכים מדי. עדיף review_date מאשר data_otziva_klienta_v2.

יש להקדיש תשומת לב מיוחדת לשדה FieldtypePage. בהגדרות שלו, יש לוודא:

  • Dereference as: Page (יחיד) או PageArray (מרובה)
  • Parent: הגבלת הבחירה לילדים של הורה ספציפי — מונע חיבורים מקריים
  • Template filter: הצגת עמודים רק עם התבנית הנדרשת
// В коде: одиночная связь
echo $page->category->title;
// Множественная связь
foreach ($page->tags as $tag) {
    echo "<span class='tag'>{$tag->title}</span>";
}

יצירת תבניות: שלב אחר שלב

תבנית מקשרת שדות לקובץ עיבוד PHP. התהליך:

  1. יצירת קובץ PHP ב-// В коде: одиночная связь echo $page->category->title; // Множественная связь foreach ($page->tags as $tag) { echo "<span class='tag'>{$tag->title}</span>"; }
  2. ב-Setup → Templates → Add New — ProcessWire ימצא את הקובץ אוטומטית
  3. הוספת השדות הנדרשים בכרטיסיית Fields
  4. הגדרת Access (הרשאות)
  5. הגדרת URLs (אישור/איסור עמודי ילדים, סיומת URL)

בכרטיסיית Advanced, יש אפשרויות מפתח:

  • Page class — מחלקת PHP מותאמת אישית לעמודי תבנית זו (מאפשרת מתודות מותאמות כמו /site/templates/)
  • Prepend/Append file — הכללת getFullName() ו-_init.php
  • Cache time — שמירת פלט התבנית במטמון למשך N שניות (לעמודים עם תעבורה גבוהה)
  • Allow page numbers — הפעלת _main.php, /page2 (לחלוקה לעמודים)
שדה Fieldset: קיבוץ בעורך

/page3 / FieldtypeFieldsetOpen מקבץ שדות ויזואלית מבלי להשפיע על האחסון. לדוגמה, בלוק SEO:

  1. FieldtypeFieldsetClose — FieldtypeFieldsetOpen, label="SEO"
  2. fieldset_seo_open — FieldtypeText
  3. meta_title — FieldtypeTextarea
  4. meta_description — FieldtypeFieldsetClose

בעורך, שדות אלה יקופלו לבלוק "SEO" אחד.

למה להשתמש ב-Repeater במקום בתבניות נפרדות?

Repeater מאפשר לעורכים להוסיף/להסיר קבוצות שדות דינמית. זה גמיש יותר מאשר יצירת תבניות נפרדות לכל בלוק. דוגמה: בלוק "יתרונות" עם שדות icon, headline, text.

// Поле features (Repeater)
foreach ($page->features as $feature) {
    echo "<div class='feature-card'>";
    echo " <img src='{$feature->icon->url}' alt=''>";
    echo " <h3>{$feature->headline}</h3>";
    echo " <p>{$feature->text}</p>";
    echo "</div>";
}

fieldset_seo_close (מודול ProFields בתשלום) הולך רחוק יותר: הוא מאפשר מספר סוגי בלוקים בשדה אחד — בדומה ל-ACF Flexible Content. זו הבחירה שלנו לעמודי נחיתה מורכבים.

איך לייצא ולייבא תצורה?

העברת מבנה בין סביבות היא כאב נפוץ. אנו משתמשים במודול // Поле features (Repeater) foreach ($page->features as $feature) { echo "<div class='feature-card'>"; echo " <img src='{$feature->icon->url}' alt=''>"; echo " <h3>{$feature->headline}</h3>"; echo " <p>{$feature->text}</p>"; echo "</div>"; } : הוא מתאר שדות ותבניות בקוד PHP כמו מיגרציות של Laravel. חלופה היא ייצוא JSON דרך API:

php -r " require '/var/www/site/index.php'; echo \$templates->get('product')->exportJSON(); " > product-template.json 

ניתן גם לייצא תצורה דרך Setup → Export/Import.

מה כלול בעבודת הגדרת ProcessWire שלנו?

  • ניתוח מבנה תוכן — הגדרת ישויות וקשרים
  • עיצוב שדות ותבניות — תוך התחשבות בביצועים ובחוויית העורך
  • יישום — יצירת שדות, תבניות, מיגרציות
  • בדיקות — בדיקת שאילתות N+1, Core Web Vitals
  • פריסה ותיעוד — מסירת תיאור ומדריך לעורך
  • אחריות — 3 חודשי תמיכה לאחר המסירה

המהנדסים שלנו מוסמכים ב-ProcessWire ויש להם ניסיון בפרויקטים בכל רמת מורכבות. מבנה נכון חוסך עד 30% מזמן הפיתוח. בקשו ביקורת על המבנה הנוכחי שלכם — נמצא צווארי בקבוק ונציע אופטימיזציות.

השוואת גישות: Fieldtype לעומת יישום ידני

היבט ProcessWire Fieldtype יישום ידני (SQL+PHP)
מהירות פיתוח פי 5 מהיר יותר איטי, הרבה קוד
גמישות גבוהה (סוגים מובנים) מלאה, אבל דורשת יותר מאמץ
ביצועים מותאם על ידי הליבה תלוי ביישום
תחזוקה קלה, מודולרית מורכבת, מונוליטית

שימוש בשדות ProcessWire נותן יתרון במהירות ובאמינות. תיעוד ProcessWire: Fieldtypes.

שדות ותבניות מוגדרים כהלכה הם המפתח לפיתוח מהיר ולעורכים מרוצים. אם יש לכם ספקות לגבי הארכיטקטורה, צרו קשר — נעזור.