7 أشياء لم تكن تعرفها يمكنك فعلها باستخدام الحقول المخصصة المتقدمة
نشرت: 2023-04-09الحقول المخصصة المتقدمة (ACF) مرادفة تقريبًا لتطوير WordPress. من خلال تشغيل أكثر من 4.5 مليون موقع ، ساعد هذا المكون الإضافي WordPress على النمو إلى آفاق جديدة. أنت تعرف البرنامج المساعد. ربما تكون قد بنيت باستخدام المكون الإضافي. لكن هل تستفيد منه بشكل كامل؟
في هذه الجلسة ، سنلقي نظرة سريعة على بعض الطرق الأقل شهرة التي يمكنك من خلالها الاستفادة من ACF لبناء تجارب WordPress الأكثر ديناميكية وقوة وجاذبية حتى الآن.
مكبرات الصوت:
- إيان بولسون ، كبير مديري المنتجات في WP Engine
- روب ستينسون ، مدير تسويق المنتجات في WP Engine
شرائح الجلسة:
نص:
إيان بولسون: مرحبًا ومرحبًا بكم في جلستنا حول المكون الإضافي Advanced Custom Fields. أنا Iain Poulson ، مدير المنتج لـ ACF في WP Engine ، وانضم إلي هنا روب ستينسون ، مدير تسويق المنتجات لدينا. اليوم ، سنأخذك خلال جلسة سريعة إلى حد ما من سبعة أشياء لم تكن تعلم أنه يمكنك فعلها باستخدام المكون الإضافي Advanced Custom Fields ، وبعض الأشياء الجديدة نسبيًا ، وبعض الأشياء الأقل شهرة. والوظائف التي سنركز عليها حول موقع وهمي صممه روب ، لذا فنحن معجبون بالأمثلة الحقيقية بدلاً من الأشياء المجردة ، لكننا أيضًا معجبون كبيرون بالأفلام.
لذا فإن هذا الموقع هو احتفال بأفضل فترة للسينما ، ربما ، يمكن القول ، بأفلام التسعينيات ، وبالتالي فإن الموقع يعتمد على تكريم ومنح الأفلام الأكثر شعبية والأكثر شعبية في التسعينيات. يحتاج الموقع إلى عرض الأفلام والسماح للمستخدمين بالتصويت لمفضلتهم ، وبنمط Rob الحقيقي ، يبدو الموقع رائعًا. لذلك لنبدأ ، ونبدأ من البداية ، ونقوم بتثبيت ACF. قل لي كيف يا روب.
روب ستينسون: رائع ، شكرًا ، إيان. نعم شكرا يا رجل. تبدو جيدة ، أليس كذلك؟ لقد مر وقتًا طويلاً في تصميمه ، واستمتع ببعض المرح. لذلك فزنا بالعقد. لقد حصلنا على المشروع ونبدأ الأمور ، وأول شيء فعلناه هو إذا تم تحديده ، يكون هذا منطقيًا أولاً ، بالنسبة لـ ACF. سنحتاج إلى إعداد مجموعة كاملة من الحقول المخصصة لبعض أنواع المنشورات المخصصة ، والقيام ببعض القوالب المثيرة للاهتمام وأشياء من هذا القبيل. ACF هي أداة العمل هنا. لذلك بالطبع ، نحتاج أولاً إلى تثبيت ACF ، وهذا هو رقم واحد هنا. لذلك عادةً ما نعلم أنه يمكنك فقط الحصول على المكون الإضافي كملف مضغوط ، وتحميله إلى مسؤول WordPress ، بشكل رائع وبسيط.
هذه هي الطريقة القياسية لتثبيت المكون الإضافي ، لكننا نعلم أيضًا أن المطورين هذه الأيام يحبون إدارة تبعياتهم بشكل مختلف قليلاً. أحب عادةً إدارته داخل الكود ، وفي عالم PHP ، يتم ذلك عادةً باستخدام Composer. لقد تمكنت الآن من تثبيت مكونات WordPress الإضافية من مستودع WordPress.org لبعض الوقت بسهولة تامة باستخدام Composer ، ولكن كان من الأصعب قليلاً القيام به مع المكونات الإضافية المتميزة مثل ACF Pro.
لكن أحدث إصدار منذ أسبوعين ، في الواقع ، منذ حوالي شهر ، قمنا بالفعل بتمكين القدرة على تثبيت ACL Pro الآن عبر Composer ، وهو أمر رائع ، لذلك سنقوم بذلك الآن. فكيف تفعل ذلك ، الخطوة الأولى ، تحتاج إلى إضافة عنوان URL لـ ACF Pro Composer Repo إلى ملف composer.JSON. الخطوة الثانية هي أنك ستنشئ ملف auth.JSON لبيانات الاعتماد الخاصة بك ، وستضع ذلك في جذر مشروعك ، محليًا وفي الطريق إلى المكان الذي ننشر فيه و بيانات الاعتماد التي تحتاجها لهذا الملف متاحة الآن في منطقة حسابك على موقع Advancedcustomfields.com.
لذلك إذا قمت بتسجيل الدخول ، سترى منطقة التراخيص ، وهناك عدد قليل من علامات التبويب الإضافية وأشياء من هذا القبيل ، يمكنك بالفعل الحصول على الجزء الكامل من التعليمات البرمجية ، ونسخ ولصق كل شيء ، أو يمكنك الحصول على اسم المستخدم الفردي و كلمة المرور ، وإحضارها إلى الملف الذي قمت بإنشائه ، ملف auth.JSON.
والخطوة الثالثة ، نقوم بتشغيل أمر Composer ، لذلك هذا أمر رائع وسهل ، عملية من 3 خطوات ، لكنها رائعة لأنها تعني ، كما قلت ، أن المطورين الذين يرغبون في نوع ما لديهم قدر أكبر من التحكم الدقيق في كيفية يديرون تبعياتهم في مشروعهم ، يمكنك الآن القيام بذلك مع ACF Pro ، وهو أمر رائع. بالطبع هناك المزيد من الوثائق حولها ، لذا فقط للتعمق أكثر ومجرد رؤية كيفية تفريغها جميعًا ، انتقل إلى المستندات الموجودة على موقع الويب ، ويجب أن تكون على ما يرام. رائع ، سوف أتقيأ أمام إيان من أجل المركز الثاني.
إيان بولسون: حسنًا ، لنتحدث الآن عن إعداد البيانات للموقع. لذا فإن أنواع المنشورات المخصصة ، تعتبر أساسية جدًا في WordPress في كيفية إنشاء موقع لا يتعلق فقط بالمنشورات أو الصفحات. إنها ميزة نوع المنشور المخصص التي تأتي في أي إصدار من WordPress يحولها إلى CMS مناسب ، وعادة ما تكون الخطوة الأولى التي يقوم بها المطورون عند إنشاء المواقع. وكان هذا دائمًا شيئًا يحدث خارج ACF. تاريخيًا ، يمكنك إما تسجيل نوع منشور برمز ، أو استخدام مكون إضافي آخر للقيام بذلك ، ولكنه جزء من الرحلة يرتبط جيدًا مع ACF. لذا ، كجزء من ACF 6.1 ، تأتي هذه الوظيفة إلى المكون الإضافي ، لذا فهي نقطة البداية الطبيعية للرحلة.
إذا كنت تريد إنشاء موقع به بيانات بنية البيانات ، فستقوم بإنشاء نوع منشور. ستقوم بإضافة حقول إليها ، وبعد ذلك يمكنك إضافة بعض التصنيفات ، ثم تبدأ في تحرير تلك البيانات. حسنًا ، هذا شيء وضعناه في 6.1 ، ومن المثير جدًا أن يكون لديك هذا التدفق الكامل للبناء في CMS. لذلك دعونا نبحث عن موقع جائزة VHS. سنحتاج إلى هيكلة بياناتنا وجعل WordPress يفعل ما نحتاج إليه ، لذلك من حيث نوع المنشور ، لأننا لا نريد استخدام المنشورات والصفحات ، سننشئ منشورًا مخصصًا اكتب للفيلم ، لتخزين بيانات الفيلم أو كائن البيانات أو نموذج البيانات ، ولكن من الواضح في مصطلحات WordPress ، أن هذا نوع منشور مخصص.
نريد تصنيف الأفلام باستخدام تصنيف حتى نتمكن من السماح للمستخدمين بمشاهدة أفلام من نوع ما بسهولة ، وبعد ذلك ستحصل على عرض سهل للواجهة الأمامية ، وعناوين URL البسيطة التي تتيح لك الوصول إلى أفلام معينة الأنواع. وسنحتاج إلى بعض الحقول الإضافية لتخزين البيانات المنظمة حول الفيلم ، لذلك نريد ، على سبيل المثال ، المخرج هو حقل نصي. سنحتاج إلى العام الذي ظهر فيه الفيلم كرقم ، وسنحتاج إلى شكل من أشكال العلاقة لربط الأفلام ببعضها البعض ، وبالطبع ، نحتاج إلى تخزين عدد الأصوات التي سيحصل عليها ، وهذا هو حقل الأرقام.
لذا دعونا نلقي نظرة سريعة على ACF 6.1 كيف سنفعل ذلك. هذه شاشة ACF 6.1 ، وستلاحظ اختلافًا طفيفًا ، لدينا القائمة على الشريط الجانبي. إنها ACF الآن ، وليست حقول مخصصة فقط ، وهذه شاشة نوع المنشور. إذن هذا أنا فقط أقوم بإعداد نوع منشور الفيلم. إنه أبسط سير عمل هنا ، من مجرد إضافة تسمية فردية لنوع المنشور ، وهو فيلم ، وعلامة الجمع ، ويتم إنشاء مفتاح نوع المنشور تلقائيًا. تم تعيين الإعداد العام كإعداد افتراضي لأنني أريده مرئيًا في الواجهة الأمامية ، ونوع المنشور ، وأريد أن أكون قادرًا على تحريره في المسؤول.
لذا بمجرد حفظ ذلك وإضافته ، فإن الشيء الجميل في الاتصال هنا مع ACF هو حقيقة أن الخطوة التالية في الرحلة هي أننا أنشأنا نوع المنشور ، هل نريد إضافة حقول إلى نوع المنشور ، أم نريد لربط الحقول الموجودة بنوع المنشور ، أو إنشاء تصنيف؟ لذلك يمكننا أن نفعل كل ذلك من تلك النقطة هنا ، لذلك ومن الواضح أننا بحاجة إلى الذهاب وإضافة تلك الحقول. حسنًا ، انقر فوق هذا الإشعار لإضافة حقول جديدة إلى نوع منشور الفيلم ، نحصل على محرر مجموعة الحقول ، ويتم ملؤه مسبقًا في الأسفل في إعدادات Metabox.
لذلك تم تعيين قواعد الموقع بالفعل ليقول ، اعرض هذه الحقول ، عندما تقوم بتحرير نوع المنشور للفيلم ، وبعد ذلك يمكنك المضي قدمًا وإضافة الحقول الخاصة بك ، وهو ما قمت به بالفعل هنا في لقطة الشاشة. إذن لدينا المخرج والسنة والأصوات والأفلام ذات الصلة. ثم بالطبع ، يمكننا تسجيل التصنيف المخصص الذي تحدثنا عنه ، وإضافة النوع ، وربط تصنيف النوع بنوع آخر من الأفلام. لكن هذه الحقول التي أضفناها والتي تم إرفاقها بكائن الفيلم ، ولكن ماذا عن الحقول التي نحتاجها لتخزين البيانات التي قد تكون أكثر عالمية أو على مستوى الموقع؟ روب ، ماذا لدينا من أجل ذلك؟
روب ستينسون: رائع ، شكرًا على ذلك ، إيان ، المظهر جيدًا. نموذج المحتوى الخاص بنا يأتي بشكل جيد ، لكننا لم ننتهي بعد. لقد قمنا الآن بالفعل بتغطية تثبيت ACF Pro عبر Composer ، وألقينا نظرة على أنواع المنشورات المخصصة ، والتصنيفات المخصصة في ACF. الآن هذان الشيئان حديثان جدًا جدًا ، لكن الشيء الثالث الذي أريد تغطيته الآن ، إنه عجوز ، لكنه جيد. ولذا فقد ظل موجودًا في المكون الإضافي لعدد لا بأس به من السنوات حتى الآن ، ولكن لا يعرف الجميع عنه ، ولا يفهم الجميع تمامًا قيمة هذا ، لذلك سننظر الآن في الحقول العالمية بصفحة الخيارات.
الآن عادة ، تفكر في حقل مخصص وكيف يخزن البيانات لمنشور معين ، أو صفحة ، أو نوع منشور مخصص. لكن في بعض الأحيان نحتاج إلى تخزين البيانات المرتبطة على مستوى الموقع ، ومن الأمثلة الرائعة على موقع جوائز VHS الرائع هذا النوع من الإشعارات أو الشريط الترويجي. وهذا هو الشريط الذي نريد أن يستمر في كل صفحة من صفحات الصفحة الرئيسية للموقع ، تذهب إلى صفحة فيلم ، إنها هناك. تنتقل إلى صفحة "حول" ، أو صفحة الاتصال ، أو صفحة المدونة ، ويوجد هذا الشريط الصغير عبر الموقع بالكامل بغض النظر عن المكان الذي ينتقل إليه المستخدم ، لذلك ليس من المنطقي ربط هذه البيانات ذات الصلة بمنشور أو فيلم.
إنه شيء يجب ربطه بالموقع. لذلك نريد أن نكون قادرين على تشغيل هذا الشريط وإيقافه لأننا نريد إعداد الأشياء ، ولكن ربما نريد أن نرغب في تشغيل هذا في أوقات معينة من العام. قد يكون لدينا عرض ترويجي أو حملة معينة ، لذلك نريد القدرة على امتلاك حقل منطقي ، حتى نتمكن من تشغيل هذا الشيء وإيقافه. أيضًا ، نريد أن نكون قادرين على تحديث نص الإجراء المسمى نفسه ، أو في الزر ، لذلك بالطبع ، الحقول المخصصة لها معنى كبير لذلك.
الآن لإعداد صفحة خيارات ، وهي الميزة الموجودة داخل ACF والتي تتيح لنا القيام بذلك ، الخطوة الأولى ، عادةً في دوالك ، ملف PHP. أو يمكنك بالطبع تسجيلها في مكان آخر ، ربما المكون الإضافي الذي تقوم بتطويره. لكنك ستقوم بتسجيل صفحة الخيارات نفسها ، وهناك بعض التكوينات الصغيرة حول الإعدادات التي يمكنك القيام بها. يمكن أن يكون لديك صفحة خيارات واحدة ، ولكن يمكنك أيضًا في الواقع أن يكون لديك عدة صفحات ، وتكون لديك نوعًا ما متداخلة ، لذلك الصفحات الفرعية ، أو الصفحات الرئيسية وأشياء من هذا القبيل ، حتى تتمكن من القيام بأشياء مثيرة للاهتمام.
بالنسبة لنا ، لدينا بسيط جدا. نحن نقوم فقط بإعداد شريط التنبيهات هنا ، لذلك نحتاج فقط إلى صفحة واحدة ، لذا فإن الخطوة الأولى هي تسجيل صفحة الخيارات هذه. الخطوة الثانية ، كما نفعل عادةً ، سننشئ مجموعة ميدانية. قد نسميها حقول شريط العرض الترويجي ، أو شيء من هذا القبيل ، أو حقول شريط الإشعارات ، ويمكنك أن ترى أن هناك حقلي المنطقي في الأعلى ، لذا فالصواب أو الخطأ هو شريط العرض الترويجي نشط. وبعد ذلك لديّ حقل نصي للرسالة ، وحقل نصي لنص الزر ، وحقل عنوان URL لرابط الزر ، ومن ثم قد يكون لدينا نوع إشعار أيضًا ، ولكن ربما نريد الحصول على تنبيهات أو نمط ترويجي ملاحظات ، وربما نقوم ببعض التصميم الشرطي المثير للاهتمام بناءً على أيهما يتم تحديده هناك.
لذلك نضيف مجموعتنا الميدانية ، ونضيف الحقول ، والخطوة الثالثة أسفل ذلك مباشرة. كما تعلم ، في قواعد الموقع ، يمكننا الآن تحديد صفحة الخيارات تساوي - وترى إعدادات الموقع التي حصلت عليها هناك - وهي صفحة الخيارات التي قمت بتسجيلها في الخطوة رقم واحد. ومع كل ذلك ، في مدير WordPress نرى الآن على الجانب الأيسر ، في شريط الإدارة لدينا لدينا إعدادات الموقع ، ونضغط على ذلك ، ونرى جميع الحقول ، كما نتوقع.
ويمكننا تشغيل شريط الإشعارات أو إيقاف تشغيله. يمكننا تحديث النص ، وتحديث الزر ، وبعد ذلك سيتم توفير هذه البيانات للقوالب الخاصة بنا ، وبالتالي فإن تجربة القوالب مع حقول البيانات داخل صفحة الخيارات هي نفسها بشكل عام ما كنت ستفعله بخلاف ذلك. هناك بعض الفروق الدقيقة حول كيفية استهداف حقيقة أن هذه صفحة خيارات وليست منشورًا على وجه التحديد ، ولكن انتقل إلى التوثيق على موقع Advancedcustomfields.com ، وهو يرشدك جميعًا إلى كيفية التعامل مع ذلك. رقم أربعة ، سأقوم بإعادتها إليك يا إيان.
إيان بولسون: شكرًا روب ، أجل. أريد فقط أن أتحدث الآن عن كيفية قيامنا بتسجيل الحقول برمجيًا مع ACF. لذا فإن إنشاء الحقول في ACF سهل للغاية باستخدام واجهة مستخدم Field Editor ، وهو نوع الأشياء التي نعرفها ونحبها ، والتي رأيناها سابقًا ، ولكن هناك طرقًا أخرى لتحديد الحقول. يسمح لنا ACF بتصدير كل من ملفات JSON و PHP مع تعريفات الحقول ، ويمكن استخدامها لإنشاء الحقول.
لكن هل تعلم أنه ، في الواقع ، يوجد في مجتمع ACF ، حزمة تسمى منشئ ACF تسمح لك بإنشاء حقول باستخدام نوع من واجهة برمجة التطبيقات بطلاقة مع كود PHP؟ إنها في الواقع حزمة طرف ثالث ، وتسمى حزمة ACF Builder من StoutLogic. نعم ، رابط GitHub موجود. بشكل أساسي ، يسمح لك بإنشاء حقول مباشرة من التعليمات البرمجية دون معرفة تعقيدات كيفية احتياج ACF إلى البيانات الميدانية في PHP. إنها تستخدم نوعًا من الطرق التعبيرية لفعل ذلك. يجعلها قابلة لإعادة الاستخدام وقابلة للحمل.
يمكنك الالتزام بتعريفات الحقول لأنه باستخدام ملفات PHP للتحكم في الإصدار الخاص بك ، من السهل التعاون. من السهل الإرسال إلى آلية النشر الخاصة بك ، كما أنك تقوم أيضًا بإزالة واجهة مستخدم محرر Field Group ، لذا فأنت تحدد تلك الحقول في التعليمات البرمجية التي تمنع العملاء بعد ذلك من لمس واجهة المستخدم ، لذلك دعونا نلقي نظرة سريعة على كيفية قيامنا افعلها. لتثبيته ، لأنه حزمة - تحدثنا عن Composer سابقًا. هذه حزمة Composer يمكنك تثبيتها بالأمر التالي ، Composer يكتسب StartLogic ، البائع ، ACF Builder ، ومن ثم هذا هو شكل الكود.
أنت نوع من إنشاء مثيل لـ Fields Builder ، وتعطيه سبيكة لما يمكن أن يكون مجموعة المجال. ثم تقول ، في هذه المجموعة الميدانية ، دعنا نضيف حقل نصي يسمى المدير. دعنا نضيف حقل رقم يسمى السنة ، ومن ثم الأهم ، سنقوم بتعيين الموقع لمجموعة الحقول لتظهر في نوع المنشور للفيلم.
وكل هذا يفعل الكثير من أجلك دون الحاجة إلى التفكير في الأمر ، لذا فأنت تعطيه اسم المدير لتسمية الحقل ، وسيستمر ، ومن الواضح ، إنشاء سبيكة أو مفتاح للحقل دون أن يكون لديك لإضافة ذلك ، فإنه يزيل الكثير من الكتابة ، والكثير من التفكير ، والكثير من الإنشاء المعرض للخطأ. ثم الجزء الثاني هو المكان الذي تقوم فيه بتحميل تعريف الحقل إلى ACF ، وسوف يبني المجموعة الميدانية من أجلك.
روب ستينسون: حسنًا ، رقم 5 هنا ، العلاقات ثنائية الاتجاه. الآن ، هذا مثير للاهتمام. أعتقد أنني أتذكر هذا المشروع المحدد الذي عملت عليه في ذلك اليوم في أيام وكالتي حيث اكتشفت ذلك بالفعل ، وكان نوعًا من تغيير قواعد اللعبة. لذا إذا لم يكن هذا شيئًا قمت به مع ACF من قبل ، فاحرص على الانتباه ، لأن هذا شيء مفيد حقًا ، لذلك دعونا نلقي نظرة على مثال. بالنظر ، بالطبع ، إلى موقع جوائز VHS لدينا ، لدينا قائمة من 100 فيلم على سبيل المثال ، وهناك طرق مختلفة ، من الواضح ، لربط هذه الأشياء.
لدينا التصنيف المخصص للنوع من قبل. قد يكون لدينا حقلان مختلفان يتعاملان مع أشياء مثل العلامات أو التجميع ، لذا تكون العلاقات ثنائية الاتجاه مفيدة عندما تريد إنشاء نوع معين من الاتصال ثنائي الاتجاه بين منشورين ، أو في حالتنا ، فيلمين. لذلك على سبيل المثال ، دعنا نقول فقط أن لدينا هذه الأفلام الثلاثة في قاعدة بياناتنا ، وكلها رسوم متحركة ، لذلك نريد إنشاء علاقة ثنائية الاتجاه معهم.
ما يعنيه ذلك الآن هو أن لدينا فيلمنا الأول هنا ، "قصة لعبة" ، فيلم رائع ، ونحدد أن هناك فيلمين آخرين مرتبطين نريد ربطهما. لذلك يمكننا إنشاء حقل علاقة لنوع المنشور المخصص لدينا ، وهو الأفلام ، وسيكون لدينا حقل علاقة هناك ، وسنختار الفيلم ، "الأسد الملك ،" والأمراء مونون - أنا آسف جدًا. ما زلت أتعثر في هذه الكلمة. أنا أقوم بذبحها ، لكن الفيلم يُدعى "الأميرة مونونوكي". ها ها ها ها. من فضلك لا تكرهني. أنا فقط أعاني من نطق هذه الكلمة لسبب ما.
ونحدد أن هذين الفيلمين مرتبطان ، لذلك نختارهما من مجال العلاقات. الآن في هذه الحالة ، سيكون من المنطقي ، نعم ، أن يكون فيلم "The Lion King" ، على سبيل المثال ، مرتبطًا بـ "Toy Story" ، وبالتالي فإن "Toy Story" مرتبط بـ "The Lion King". لذلك ربما ننتقل عادةً إلى شاشة تحرير "Lion King" ، ثم سنجد "Toy Story" ، ونضيفها هناك ، لكننا نضاعف عملنا هناك. لذا فإن ما تفعله العلاقة ثنائية الاتجاه هو أنها تنشئ ذلك الاتصال تلقائيًا لنا ، وهو أمر مفيد حقًا.
لذا بمجرد أن نضيف ، على سبيل المثال ، "The Lion King" إلى "Toy Story" ، تتم إضافة "Toy Story" تلقائيًا إلى "Lion King" ، وهذا مفيد حقًا. يوفر الكثير من الوقت لمنشئي المحتوى ومديري المحتوى. إنه يقلل من خطر النسيان ، أو ربما يمكنك إزالة واحدة من إحدى المشاركات ، ثم تنسى إزالتها من الأخرى. إنه حقًا يبسط تجربة تحرير المحتوى ، لذا فهو أمر مفيد حقًا يمكن استخدامه ، خاصة في المواقع المثيرة للاهتمام مثل هذا الموقع. فكيف لنا أن نفعل ذلك؟ حسنًا ، هناك طريقتان للقيام بذلك حاليًا ، وسأتحدث عن شيء ثالث ، ربما ، وهو ما سيحدث لاحقًا هذا العام.
إذن كيف يتم ذلك ، رقم واحد هو أنه يمكنك القيام بذلك في الكود. لذلك فقط مع تثبيت المكون الإضافي ACF Pro ، يمكنك كتابة رمز للقيام بذلك. ويمكنك كتابة وظيفة ترتبط بفلتر قيمة تحديث ACF ، ويتم تشغيل هذا المرشح قبل حفظ القيمة ، وما يفعله بشكل أساسي ، فهو يلتقط المنشور الحالي الذي تقوم بتحريره ، ويحدد معرّف المنشور. تمت إضافته ، ثم قم بتحديث المنشور الآخر ، ويقوم بهذا النوع من المطابقة في الخلفية من أجلك ، وهو أمر مفيد جدًا.
القليل من التعليمات البرمجية ، طالما أنك مرتاح لذلك ، فهو ليس حمل ثقيل للغاية. ولكن مرة أخرى ، هناك رابط هناك ، أو عنوان URL ، يمكنك التحقق منه في مستندات الحقول المخصصة المتقدمة لترى كيف يمكنك القيام بذلك. ومع ذلك ، فإن الخيار الثاني ليس رمزًا ، وهو نوع من اللطيف في بعض الأوقات. إذن هذا في الواقع مكون إضافي للنظام البيئي يسمى ACF Extended. إنه متاح على WordPress.org ، وما يفعله هو أنه يجلب هذه الميزة إلى واجهة مستخدم ACF نفسها.
لذلك إذا قمت بتثبيت هذا الامتداد ، ACF Extended ، وتم تثبيت ACF Pro ، فسترى خيارًا أنه عند إنشاء حقل علاقة ، يوجد تبديل ثنائي الاتجاه يمكنك تشغيله ، وبعد ذلك يمكنك قم بتأسيس ذلك لمجموعة هناك مباشرة من داخل واجهة المستخدم ، وهو أمر مفيد جدًا. الآن تسير الأمور بشكل مثير للاهتمام حقًا مع هذا المشروع ، لكن دعونا لا نفقد رأسنا معه ، أو هل ينبغي علينا ذلك؟ إيان إليكم.
إيان بولسون: نعم ، شكرًا روب. يجدر بنا أن نطلق عليها مقطوعة الرأس عندما يتعلق الأمر بـ ACF. يحتوي ACF على دعم مقطوع الرأس ، لذا ، نعم ، المواقع الأساسية مقطوعة الرأس ، طبيعة المواقع المنفصلة. هناك الكثير من اتصالات API جارية ، ولدى ACF دعم API. REST API أضفناها أصلاً إلى ACF اعتبارًا من 5.11 أو 5.11 ، ونحن ندعم GraphQL مع المكون الإضافي WP GraphQL ، الذي يحتوي على وظيفة ACF الإضافية لـ WP GraphQL ، لذلك يدعم ACF المواقع بدون رأس. إنه يتكامل مع برنامج WP Engine Atlas لمواقع WordPress المناسبة بدون رأس ، ولكن دعنا نتحدث عن مجرد مثال حقيقي من العالم لكيفية أخذ البيانات الموجودة في موقع VHS WordPress الخاص بنا ، واستخدامها بطريقة منفصلة.
لذلك على سبيل المثال - اسمعني - يصوت الأشخاص بشكل أساسي على موقع جائزة VHS ، وسوف يفعلون - أعتقد أننا وضعنا تاريخًا عشوائيًا - يجب عليهم التصويت حتى نهاية التاريخ المحدد ، ونحن سأرى ما هو الأكثر شعبية. لدينا سينما محلية لدينا ، وهي تقدم فاتورة مزدوجة لأفلام التسعينيات الأكثر تصويتًا. إذاً ، في السينما ، لديهم لوحة الإعلانات الخاصة بهم ، وهي متوفرة عبر الإنترنت. إنه متصل بالويب ، ويمكننا تشغيل ما يظهر على لوحة الإعلانات ديناميكيًا ، لذلك نحتاج إلى الاتصال بموقع WordPress الخاص بنا.
على سبيل المثال ، لوحة الإعلانات عبارة عن تطبيق عقدة بسيط ، نحتاج إلى جلب البيانات من موقع VHS ، لذلك دعونا نلقي نظرة سريعة على كيفية القيام بذلك باستخدام نقطة نهاية REST API مخصصة ، وكما قلت من قبل ، لقد حصلت على دعم GraphQL. يمكن القيام به في كلا الاتجاهين ، ولكن ربما يكون هذا مثالًا أبسط لإظهاره. لذا أولاً وقبل كل شيء ، سننشئ وظيفة تحصل أساسًا على البيانات التي نحتاجها ، لذلك فقط من خلال هذا ، إنه استعلام WP الذي يقول ، أريد أفلامًا ، أو أنشر أنواعًا من نوع الفيلم ، لكنني فقط تريد اثنين. لكني أريد أيضًا أن أطلبها حسب حقل ACF ، وهو اسم الحقل عبارة عن تصويتات ، ونحن نرتبها بترتيب تنازلي ، لذلك سنحصل على الجزء العلوي ، وسنحصل على الجزء العلوي اثنين.
وبعد ذلك ، سننشئ نقطة نهاية مخصصة REST ، والتي تستخدم وظيفة رد الاتصال التي أنشأناها في الشريحة السابقة ، وهذا سيعطينا نقطة نهاية يمكننا الوصول إليها للحصول على الفيلمين. إذن ما يبدو عليه ذلك في الواقع - وهذا مجرد اختبار - لذا فإن عنوان URL هو vhsawards.com و WP-JSON ، ثم أعطيناه مساحة اسم VHS الإصدار 1 في حال أردنا تغيير واجهة برمجة التطبيقات ، و لقد حصلنا للتو على بنية عنوان URL بسيطة جدًا من الشعبية.
وهذا مجرد إعادة كائن JSON مع عنصرين ، أهم عنصرين تم التصويت عليهما ، والذي حدث أنهما "Fight Club" و "Goodfellas" ، وهما جيدان جدًا ، لذا نعم. من الجيد بالتأكيد إظهار كيفية فصل قوى ACF عن المواقع التي لا رأس لها ، ولكن من الصعب جدًا التحدث عن WordPress في الوقت الحالي دون ذكر الكتل. لا أصدق أننا وصلنا حتى الآن دون ذكر الكتل. ماذا لديك من أجلنا يا روب لتغيير ذلك؟
روب ستينسون: نحن بالتأكيد بحاجة إلى التحدث عن الكتل. قبل أن أفعل ذلك ، أدركت أنه قبل ذلك بقليل عندما كنا نبحث في المرتبة الخامسة حول العلاقات ثنائية الاتجاه ، ألمحت إلى طريقة ثالثة للقيام بذلك. لم أقم بتغطيتها ، لذلك كل ما أريد قوله هو مشاهدة هذه المساحة لأننا نخطط ، ولدينا في خريطة الطريق ، للنظر في إضافة دعم أفضل للعلاقة ثنائية الاتجاه بشكل أصلي في المكون الإضافي نفسه ، حتى تتمكن من تسهيل هذه الأشياء فقط داخل مكون ACF الإضافي دون الحاجة إلى أشياء من جهات خارجية ، لذلك فقط شاهد هذه المساحة ، ولا توجد التزامات بشأن التوقيت. هذا شيء ننظر إليه.
رقم سبعة ، نعم. لنلق نظرة على إنشاء قالب مخصص باستخدام ACF. يعرف معظم الناس الآن أنه يمكنك القيام بذلك في ACF الآن ، ولكن ليس بالضرورة أن الجميع قد جربه. لذا ، إذا كنت في هذا المعسكر وكنت مستخدمًا منذ فترة طويلة لـ ACF ، ولم تستخدم وظيفة الحظر المخصصة الآن ، شاهد هذا ، لأنه قد يطالبك فقط برؤية القيمة في هذه الميزة. ولكن كيف سنستخدم هذا في جوائز VHS؟ ربما نريد أن يكون لدينا مكون كتلة لموقعنا يمكننا من إضافة أماكن مختلفة ، وهذا هو جمال الكتلة المخصصة ، أو أي كتلة ، هي أنه يمكن استخدامها ووضعها على الصفحات والمنشورات في جميع أنحاء الموقع ، ونريد لإنشاء مجموعة مخصصة للحث على اتخاذ إجراء.
الآن هذه كتلة بسيطة جدًا ، ويمكنك بالتأكيد القيام بأشياء أكثر إثارة باستخدام الكتل المخصصة. سنبقي الأمر بسيطًا الآن. لكن هذا البانر الأزرق ، دعوة إلى الإجراء ، نريد أن نكون قادرين على وضعه في الصفحة الرئيسية ، أو ربما في بعض منشورات المدونة وأشياء من هذا القبيل ، لتشجيع القراء وزوار الموقع على النقر فوق هذا الزر ، والمتابعة ، و التصويت لفيلم التسعينيات المفضل لديهم. إذن كيف يمكننا بناء هذه الكتلة المخصصة باستخدام ACF؟ والسبب في قيامنا بذلك ككتلة مخصصة هو تصميم فريد لها.
لقد حصل هذا التدرج اللوني للخلفية المثير للاهتمام على نمط النقطة المتكرر هذا ، وأدركنا أنه من الأسهل بالنسبة لنا بناء هذا باعتباره الكتلة المخصصة مع هذا التحكم الدقيق الذي يمنحنا ، مقابل ما يمكن أن نفعله مع الكتل الموجودة خارج الرف مع نواة WordPress. فكيف نفعل هذا؟ الخطوة الأولى هي أننا نسجل الكتلة المخصصة لدينا ، عادةً في الدوال PHP ، أو في أي مكان تكتب فيه هذا النوع من التعليمات البرمجية. لطيفة وبسيطة ، ونشير إلى الدليل حيث ستكون ملفات القوالب في النهاية للكتلة المخصصة الخاصة بنا ، لذا فهذه هي الخطوة الأولى.
الخطوة الثانية ، نقوم بإنشاء مجموعتنا الميدانية ، ونضيف الحقول الخاصة بنا. لذلك بالنسبة إلى كتلة الإجراء الذي تم استدعائه ، نريد الحصول على نص ونص زر ورابط زر ولون الخلفية أيضًا. ربما نريد أن نعطي خيارًا لبعض الاختلاف في التصميم لهذا الغرض. رقم ثلاثة سنقوم ، في قواعد الموقع ، باختيار الكتلة ، وسنقول إنها تساوي ، وقد سجلنا كتلة CTA سابقًا ، وهذا هو سبب توفرها لـ لنا هناك في تلك القائمة المنسدلة. ننتقل الآن إلى ملف القالب الخاص بنا ، لذلك تم إعداد جميع الحقول وكل شيء ، وسنقوم الآن ببعض القوالب الخاصة بنا. الآن ، القوالب مختلفة في بعض النواحي عن الطريقة التي قد تستخدمها تقليديًا مع ACF.
ولكن من نواحٍ عديدة أخرى ، فهو متشابه جدًا جدًا ، لذا فإن الكثير من الأنماط التي تستخدمها عادةً لتطويرك ، ستستخدمها أثناء إنشاء الكتل المخصصة الخاصة بك ، وهو أمر رائع. لذلك سنقول ، في مشروعنا ، إنه موضوعنا المخصص. لدينا دليل block ، ثم لدينا دليل CTA ، والذي يطابق الكتلة التي سجلناها ، وبعد ذلك عادةً ما يكون لديك ثلاثة ملفات قالب ، block.JSONsomething.PHP ، وهو ترميز HTML الخاص بنا ، ثم dot CSS لدينا التصميم.
إذن هذا هو نوع الكتلة JSON ، وهذا نوع من المكان الذي سجلنا فيه الكتلة ، ولكن هذه هي الطريقة التي يمكننا بها تحديد الأشياء أكثر قليلاً ، وهناك الكثير الذي يمكنك القيام به هنا حول التكوين ومختلف الميزات الأساسية الأصلية التي يمكنك التبديل بين تشغيل ، أو إيقاف تشغيل ، وإتاحة الكتلة المخصصة الخاصة بك. لذا تحقق بالتأكيد من الوثائق المتعلقة بهذا الأمر وفهم ما يمكن فعله ، لأن هذا هو المكان الذي يمكنك ، كما قلت ، تكوين كيفية إتاحة هذه الكتلة ، وعرض الميزات والميزات الأساسية التي يمكنك المرور من خلالها إلى الكتلة المخصصة الخاصة بك.
لدينا بعد ذلك ملف القالب الخاص بنا ، ملف PHP الخاص بنا ، ويمكنك أن ترى هنا أنا فقط أقوم بإعداد متغيرات تتفاعل مع حقل Get ، وأتفاعل مع بيانات الحقول الخاصة بنا هناك ، وقليلًا من المنطق الشرطي البسيط للغاية على تصميمنا هناك ، ثم HTML الخاص بنا للكتلة نفسها. وبعد ذلك لن أمشي عبر CSS. أنت تعرف ما هو CSS ، وأنا متأكد من أنه من المحتمل أن تكتب CSS أفضل مما كتبته هنا ، لكنك حصلت على الفكرة. لديك ملف CSS لتصميم الكتلة الخاصة بك ، ويمكنك أن ترى أن لدينا بعض الأشياء المثيرة للاهتمام حول الخطوط ، والخلفية الشعاعية المتدرجة لهذا النوع من الخلفية النقطية ، وهو نوع من المرح.
ولكن مرة أخرى ، السبب في إنشاء هذه الكتلة المخصصة هو أننا نريدها نوعًا ما من ضبط CSS ، تصميمنا ، حتى نتمكن حقًا من تنفيذ التصميم الذي نعمل على تحقيقه. ولكي تظهر لك كيف يبدو هذا في المحرر ، يمكنك أن ترى ، يمكننا تحديد مجموعة الإجراءات التي تم استدعاؤها ، يمكنك أن تضيء على نطاق واسع. يمكننا التفاعل مع حقولنا ، وإضافة نص للنص والزر ، وإضافة رابط للزر أيضًا ، وهذه كتلة مخصصة ذات مظهر جميل للغاية يمكننا من خلالها المرور إلى محرري المحتوى لدينا.
إيان بولسون: نعم ، شكرًا روب. يا له من منظر جميل. نحن حقا بحاجة إلى أن نعيش ذلك. هذا رائع. حسنًا ، دعنا نستعرض ما تحدثنا عنه اليوم. لذلك قمنا بتجربة كيفية تثبيت ACF Pro ، ولكن باستخدام Composer. تحدثنا عن كيفية تسجيل أنواع المنشورات المخصصة والتصنيفات في ACF. نظرنا في تسجيل الحقول العالمية ، أو على مستوى الموقع ، مع صفحة خيارات ، وبحثنا في طريقة مختلفة لتسجيل الحقول برمجيًا مع الحزمة.
تعمق روب في العلاقات وكيفية إنشاء علاقات ثنائية الاتجاه. لقد تطرقنا إلى بلا رأس مع ACF ، وقد قام Rob's الآن للتو بعمل مثال رائع لإنشاء كتلة مخصصة مع ACF بالكاد باستثناء بعض PHP و HTML و CSS ، ولا يوجد رد فعل على الإطلاق ، لذلك هذا جيد حقًا. لقد كان هذا رائعًا يا روب. ما هي الاصوات؟ ماذا توصلنا إليه؟
روب ستينسون: انظر ، بالنسبة لي ، يتعلق الأمر بهذا - أعظم فيلم في التسعينيات هو بلا شك فيلم "هوك" لروبن ويليامز. اختتم الكثير من الحنين إلى الماضي بالنسبة لي في ذلك ، أحب هذا الفيلم. ماذا عنك يا ايان؟
إيان بولسون: بالنسبة لي ، يجب أن يكون "روبن هود ، أمير اللصوص" لكيفن كوستنر. إنه كلاسيكي. ننسى الشعر السيئ ، البوري ، اللكنة الإنجليزية المراوغة التي ليست حتى لهجة إنجليزية. إنه أعظم فيلم لروبن هود على الإطلاق ، وهذا تلة أرغب في الموت عليها.
روب ستينسون: ها ، ها ، لا ، عادل بما فيه الكفاية. انظروا ، شكرًا لكم جميعًا على التسكع. أتمنى أن تكون قد تعلمت شيئًا ما ، ونتطلع حقًا إلى رؤية ما تبنيه مع ACF ، في صحتك.