Ambil semua bidang bidang canggih (ACF) di dalam Corcel dengan mudah.
Plugin Corcel ini memungkinkan Anda untuk mengambil bidang khusus WordPress yang dibuat oleh plugin ACF menggunakan sintaks yang sama fasih, dari kerangka kerja Laravel. Anda dapat menggunakan model dan koleksi yang fasih untuk meningkatkan pengembangan Anda, menggunakan backend WordPress dengan aplikasi PHP apa pun.
Untuk informasi lebih lanjut tentang cara kerja Corcel, silakan kunjungi repositori.
Corcel | Laravel | Php |
---|---|---|
^4.0 | 7.x | >=7.2 |
^5.0 | 8.x | >=7.3 |
Untuk memasang plugin ACF untuk Corcel mudah:
composer require corcel/acf
Corcel diperlukan untuk plugin ini, tetapi jangan khawatir, jika hilang itu akan dipasang juga.
Ini adalah versi pengembangan sehingga penggunaan dapat berubah lebih jauh. Perilaku yang diinginkan dari plugin ini adalah untuk mengizinkan ini:
$ post = Post :: find ( 1 );
echo $ post -> acf -> url ; // returns the url custom field created using ACF
Saat menggunakan sesuatu seperti $post->acf->url
plugin harus membuat beberapa kueri SQL tambahan untuk mendapatkan jenis bidang sesuai pendekatan ACF. Jadi kami menciptakan cara lain untuk mendapatkannya tanpa membuat pertanyaan ekstra itu. Anda hanya memiliki informasi plugin apa jenis posting, sebagai fungsi:
// Extra queries way
echo $ post -> acf -> author_username ; // it's a User field
// Without extra queries
echo $ post -> acf -> user ( ' author_username ' );
PS: Nama metode harus ditulis dalam format
camelCase()
. Jadi, misalnya, untuk tipe bidangdate_picker
Anda harus menulis$post->acf->datePicker('fieldName')
. Plugin melakukan konversi daricamelCase
kesnake_case
untuk Anda.
Menggunakan $post->meta->field_name
default di Corcel mengembalikan nilai kolom meta_value
di tabel wp_postmeta
. Ini bisa berupa string, bilangan bulat atau bahkan array serial. Masalahnya adalah, saat Anda menggunakan ACF, nilai ini bisa lebih dari itu. Jika Anda memiliki bilangan bulat, misalnya, itu bisa berupa post id
, user id
atau bahkan serangkaian posts ids
.
ACF harus membuat 2 (dua) kueri SQL untuk mengetahui jenis lapangan, jadi sesuai jenisnya memiliki perilaku yang berbeda dengan meta_value
. Misalnya, jika nilainya 45
dan post type
adalah post_object
, nilai 45
adalah posting dengan ID 45
. Jadi, dalam hal ini, Corcel harus mengembalikan instance CorcelPost
alih -alih hanya bilangan bulat.
ACF pertama mengambil meta_value
di tabel wp_postmeta
, di mana meta_key
adalah sesuatu seperti _field_name
dan ID pos adalah ID dari posting yang Anda inginkan bidang khusus. Nilai yang dikembalikan adalah field key
dan sepertinya field_57f421a2b81bd
ini. Dengan kunci ini mengambil posting yang sesuai di wp_posts
, di mana post_name = 'field_57f421a2b81bd'
. Dengan hasilnya mendapatkan nilai post_content
, array serial, deserialize dan mendapatkan konten pada kunci type
. Ini adalah jenis bidang. Menurutnya ACF (dan juga plugin ini) melakukan hal yang benar.
Plugin ini berfungsi dengan logika dasar di dalam kelas abstrak Corcel CorcelAcfFieldFactory
CorcelAcfFieldBasicField
, yang memiliki banyak fungsi yang berguna untuk mengembalikan field key
, value
, dll. Menurut tipe bidang, jadi, jika jenis bidang adalah post_object
itu mengembalikan instance CorcelAcfFieldPostObject
, dan itu akan kembali dalam metode get()
Sebuah instance dari CorcelPost
.
Pertama kita harus membuat kelas bidang dan kasus uji. Setelah kami harus mengatur bagaimana Corcel akan bekerja dengan plugin corcel/acf
, mengembalikan nilai bidang khusus dalam $post->meta->field
atau mungkin $post->acf->field
yang memiliki perilaku yang berbeda (selesai! ).
Repeater
;Flexible Content
dengan tes unit (selesai!);whereIn()
.Beberapa bidang masih hilang (periksa tabel di bawah dan berkontribusi).
Bidang | Status | Pengembang | Kembali |
---|---|---|---|
Teks | Oke | @jgrossi | string |
TexTarea | Oke | @jgrossi | string |
Nomor | Oke | @jgrossi | number |
Oke | @jgrossi | string | |
Url | Oke | @jgrossi | string |
Kata sandi | Oke | @jgrossi | string |
Wysiwyg (editor) | Oke | @jgrossi | string |
OEMBED | Oke | @jgrossi | string |
Gambar | Oke | @jgrossi | CorcelAcfFieldImage |
Mengajukan | Oke | @jgrossi | CorcelAcfFieldFile |
Galeri | Oke | @jgrossi | CorcelAcfFieldGallery |
Memilih | Oke | @jgrossi | string atau array |
Kotak centang | Oke | @jgrossi | string atau array |
Radio | Oke | @jgrossi | string |
Benar/Salah | Oke | @jgrossi | boolean |
Objek Posting | Oke | @jgrossi | CorcelPost |
Tautan halaman | Oke | @jgrossi | string |
Hubungan | Oke | @jgrossi | CorcelPost atau Collection Post |
Taksonomi | Oke | @jgrossi | CorcelTerm atau Collection Term |
Pengguna | Oke | @jgrossi | CorcelUser |
Google Map | hilang | ||
Pemilih tanggal | Oke | @jgrossi | CarbonCarbon |
Tanggal Pemilih Waktu | Oke | @jgrossi | CarbonCarbon |
Pemilih Waktu | Oke | @jgrossi | CarbonCarbon |
Pemetik Warna | Oke | @jgrossi | string |
Pengulang | Oke | @jgrossi | Collection bidang |
Konten fleksibel | Oke | @marcoboom | Collection |
Semua kontribusi dipersilakan. Sebelum mengirimkan permintaan tarik Anda, lihat pedoman berikut:
develop
: git checkout -b my-fix-branch develop
;phpunit
untuk memfasilitasi pekerjaan persetujuan;corcel/acf:develop
, selalu . Jangan kirim PR ke cabang master
kami! Kami mendorong Anda untuk menggunakan git flow
(https://github.com/petervanderdoes/gitflow-avh) alur kerja untuk membuat hidup Anda lebih mudah. Itu tidak perlu, tetapi juga akan baik untuk karier pengembangan Anda;PSR-2
(http://www.php-fig.org/psr/psr-2/). Untuk menjalankan tes phPunit, jalankan phpunit
(jika Anda memiliki phpunit global yang dapat dieksekusi) atau coba perintah berikut:
./vendor/bin/phpunit
Anda harus mengimpor file database.sql
ke database di dalam lingkungan lokal Anda untuk membuat tes berfungsi. Cukup unzip file tests/config/database.sql.zip
dan atur bidang database, pengguna dan kata sandi di tests/config/bootstrap.php
.
Jika Anda ingin mengakses panel admin WordPress cukup gunakan nama pengguna sebagai
admin
dan kata sandi123456
.
Lisensi MIT © Junior Grossi