جلب جميع حقول الحقول المخصصة المتقدمة (ACF) داخل Corcel بسهولة.
يتيح لك هذا البرنامج المساعد Corcel إحضار حقول WordPress المخصصة التي تم إنشاؤها بواسطة المكون الإضافي ACF باستخدام نفس بناء الجملة من البليغ ، من إطار Laravel. يمكنك استخدام النماذج والمجموعات البليغة لتحسين تطورك ، باستخدام الواجهة الخلفية WordPress مع أي تطبيق PHP.
لمزيد من المعلومات حول كيفية عمل Corcel ، يرجى زيارة المستودع.
كورسيل | لارافيل | PHP |
---|---|---|
^4.0 | 7.x | >=7.2 |
^5.0 | 8.x | >=7.3 |
لتثبيت البرنامج المساعد ACF لـ Corcel سهل:
composer require corcel/acf
مطلوب Corcel لهذا البرنامج المساعد ، ولكن لا تقلق ، إذا كان مفقودًا ، فسيتم تثبيته أيضًا.
هذه نسخة تطوير بحيث يمكن أن يتغير الاستخدام أكثر. السلوك المطلوب لهذا البرنامج المساعد هو السماح بذلك:
$ post = Post :: find ( 1 );
echo $ post -> acf -> url ; // returns the url custom field created using ACF
عند استخدام شيء مثل $post->acf->url
يجب أن يقوم المكون الإضافي بإجراء بعض استعلامات SQL الإضافية للحصول على نوع الحقل وفقًا نهج ACF. لذلك أنشأنا طريقة أخرى للحصول على ذلك دون إجراء هذه الاستفسارات الإضافية. لديك فقط إعلام المكون الإضافي ما هو نوع المنشور ، كدالة:
// Extra queries way
echo $ post -> acf -> author_username ; // it's a User field
// Without extra queries
echo $ post -> acf -> user ( ' author_username ' );
ملاحظة: يجب كتابة أسماء الأسلوب بتنسيق
camelCase()
. لذلك ، على سبيل المثال ، بالنسبة لنوع الحقلdate_picker
يجب عليك كتابة$post->acf->datePicker('fieldName')
. يقوم المكون الإضافي بالتحويل منcamelCase
إلىsnake_case
لك.
باستخدام $post->meta->field_name
في Corcel إرجاع قيمة عمود meta_value
في جدول wp_postmeta
. يمكن أن تكون سلسلة أو عدد صحيح أو حتى صفيف تسلسلي. المشكلة هي ، عندما تستخدم ACF ، يمكن أن تكون هذه القيمة أكثر من ذلك. إذا كان لديك عدد صحيح ، على سبيل المثال ، يمكن أن يكون post id
أو user id
أو حتى مجموعة من posts ids
.
يتعين على ACF أن يصنع 2 (اثنين) استعلامات SQL لمعرفة نوع الحقل ، لذلك وفقًا للنوع ، يكون له سلوك مختلف مع meta_value
. على سبيل المثال ، إذا كانت القيمة 45
post type
هو post_object
، فإن القيمة 45
هي منشور مع معرف 45
. لذلك ، في هذه الحالة ، يجب على Corcel إعادة مثيل CorcelPost
بدلاً من مجرد عدد صحيح.
أول ACF يجلب meta_value
في جدول wp_postmeta
، حيث يكون meta_key
مثل _field_name
ومعرف المنشور هو معرف المنشور الذي تريده الحقل المخصص. القيمة التي تم إرجاعها هي field key
ويبدو أن هذا field_57f421a2b81bd
هذا. مع هذا المفتاح ، فإنه يجلب المنشور المقابل في wp_posts
، حيث post_name = 'field_57f421a2b81bd'
. من خلال النتائج ، تحصل على قيمة post_content
، صفيف تسلسلي ، وتجاهلها ويحصل على المحتوى على مفتاح type
. هذا هو نوع الحقل. وفقا له ACF (وكذلك هذا البرنامج المساعد) يفعل الشيء الصحيح.
يعمل هذا البرنامج المساعد مع منطق أساسي داخل فئة Corcel CorcelAcfFieldFactory
CorcelAcfFieldBasicField
Abstract ، التي لديها الكثير من الوظائف المفيدة لإرجاع field key
، value
، إلخ. وفقًا لنوع الحقل ، لذلك ، إذا كان نوع الحقل هو post_object
، فإنه يعيد مثيلًا لـ CorcelAcfFieldPostObject
، وسيعود إلى طريقة get()
مثيل لـ CorcelPost
.
أولاً ، يجب علينا إنشاء فئات الحقول وحالات الاختبار. بعد أن يتعين علينا إعداد كيفية عمل Corcel مع مكون الإضافي corcel/acf
، وإعادة قيمة الحقل المخصص بالتنسيق $post->meta->field
أو ربما $post->acf->field
له سلوك مختلف (تم! ).
Repeater
؛Flexible Content
مع اختبارات الوحدة (تم!) ؛whereIn()
.لا تزال بعض الحقول مفقودة (تحقق من الجدول أدناه وتساهم).
مجال | حالة | المطور | عودة |
---|---|---|---|
نص | نعم | jgrossi | string |
Textarea | نعم | jgrossi | string |
رقم | نعم | jgrossi | number |
بريد إلكتروني | نعم | jgrossi | string |
عنوان URL | نعم | jgrossi | string |
كلمة المرور | نعم | jgrossi | string |
Wysiwyg (محرر) | نعم | jgrossi | string |
Oembed | نعم | jgrossi | string |
صورة | نعم | jgrossi | CorcelAcfFieldImage |
ملف | نعم | jgrossi | CorcelAcfFieldFile |
معرض | نعم | jgrossi | CorcelAcfFieldGallery |
يختار | نعم | jgrossi | string أو array |
مربع الاختيار | نعم | jgrossi | string أو array |
راديو | نعم | jgrossi | string |
صحيح/خطأ | نعم | jgrossi | boolean |
كائن البريد | نعم | jgrossi | CorcelPost |
رابط الصفحة | نعم | jgrossi | string |
علاقة | نعم | jgrossi | CorcelPost أو Collection من Post |
تصنيف | نعم | jgrossi | CorcelTerm أو Collection من Term |
مستخدم | نعم | jgrossi | CorcelUser |
خريطة جوجل | مفتقد | ||
ديتور التاريخ | نعم | jgrossi | CarbonCarbon |
تاريخ التوقيت وقت | نعم | jgrossi | CarbonCarbon |
منتقي الوقت | نعم | jgrossi | CarbonCarbon |
منتقي الألوان | نعم | jgrossi | string |
مكرر | نعم | jgrossi | Collection الحقول |
محتوى مرن | نعم | marcoboom | Collection |
جميع المساهمات موضع ترحيب. قبل تقديم طلب السحب الخاص بك ، ألقِ نظرة على الإرشادات التالية:
develop
: git checkout -b my-fix-branch develop
؛phpunit
لتسهيل وظيفة الموافقة ؛corcel/acf:develop
، دائمًا . لا ترسل العلاقات العامة إلى فرعنا master
! نحن نشجعك على استخدام git flow
(https://github.com/petervanderdoes/gitflow-avh) لتسهيل حياتك. إنه ليس ضروريًا ، لكنه سيكون جيدًا أيضًا لحياتك المهنية ؛PSR-2
(http://www.php-fig.org/psr/psr-2/). لتشغيل اختبارات phpunit ، قم بتنفيذ phpunit
(إذا كان لديك قابلة للتنفيذ العالمية phpunit) أو جرب الأمر التالي:
./vendor/bin/phpunit
يجب عليك استيراد ملف database.sql
إلى قاعدة بيانات داخل بيئتك المحلية لإجراء الاختبارات التي تعمل. ما عليك سوى إلغاء ضغط ملف الاختبارات tests/config/bootstrap.php
tests/config/database.sql.zip
إذا كنت ترغب في الوصول إلى لوحة مسؤول WordPress ، فما عليك سوى استخدام اسم المستخدم
admin
وكلمة مرور123456
.
رخصة معهد ماساتشوستس للتكنولوجيا © Junior Grossi