Saya bermain dengan Gutenberg sebelum dimasukkan ke dalam inti, dan saya ingin tahu cara memperpanjang blok galeri yang ada untuk mengubah tampilan. Sebagai contoh, alih-alih kisi thumbnail saya ingin menampilkan rangkai salindia. Apa itu mungkin? Jika ya, bagaimana caranya? Bantuan apa pun akan dihargai.
images
gallery
block-editor
leemon
sumber
sumber
Jawaban:
Ok, saya sudah bermain dengan ini sedikit dan telah berhasil mengubah output dari blok Galeri, dengan peringatan berikut:
@wordpress/hooks
sementara diskusi tentang apa sistem kait untuk digunakan dalam Core sedang berlangsung .Hal pertama yang perlu kita lakukan adalah mendaftarkan skrip. Ini dilakukan dengan
wp_enqueue_scripts()
, tetapi dienqueue_block_editor_assets
hook.Skrip harus memiliki
wp-blocks
skrip sebagai ketergantungan. Ini hampir pasti sudah dimuat di editor, tetapi membuatnya menjadi dependensi yang memastikannya dimuat sebelum script kami.HTML untuk output blok ditangani oleh
save()
metode blok. Anda dapat melihat blok Galeri di file ini .Pada tahap ini (Maret 2018) Gutenberg mendukung filter pada metode penyimpanan blok
blocks.getSaveElement
,. Kami dapat menambahkan kait ke ini dalam JavaScript seperti ini:Argumen pertama adalah nama hook, argumen ke-2 adalah - saya pikir - namespace, dan argumen terakhir adalah fungsi callback.
Karena kita mengganti
save()
metode blok, kita perlu mengembalikan elemen baru. Namun, ini bukan elemen HTML normal yang harus kita kembalikan. Kita perlu mengembalikan elemen Bereaksi .Ketika Anda melihat
save()
metode blok asli apa yang Anda lihat adalah JSX. React, yang Gutenberg gunakan di bawah kap, mendukungnya untuk merender elemen. Lihat artikel ini untuk lebih lanjut tentang itu.JSX biasanya membutuhkan langkah build, tapi karena saya tidak memperkenalkan langkah build untuk contoh ini, kita perlu cara untuk membuat elemen tanpa JSX. Bereaksi menyediakan ini dengan
createElement()
. WordPress menyediakan pembungkus untuk ini dan fungsionalitas reaksi lainnya dalam bentukwp.element
. Jadi untuk menggunakancreateElement()
kita gunakanwp.element.createElement()
.Dalam fungsi panggilan balik untuk
blocks.getSaveElement
kita dapatkan:element
Elemen asli dibuat oleh blok.blockType
Objek yang mewakili blok yang digunakan.attributes
Properti instance blok. Dalam contoh kami ini termasuk gambar di galeri dan pengaturan seperti jumlah kolom.Jadi fungsi panggilan balik kami perlu:
Berikut adalah contoh lengkap yang hanya menghasilkan a
ul
dengan kelas,,my-gallery
danli
s untuk setiap gambar dengan kelasmy-gallery-item
dan danimg
di masing-masing dengansrc
set ke URL gambar.Beberapa hal yang perlu diperhatikan:
ul.wp-block-gallery .blocks-gallery-item
, jadi markup ini dan kelas-kelas tersebut diperlukan untuk mengedit blok menjadi mungkin. Markup ini juga digunakan untuk gaya default.attributes.images.map
sedang mengulang setiap gambar dan mengembalikan array elemen anak sebagai konten untuk elemen utama. Di dalam elemen-elemen ini ada elemen anak lain untuk gambar itu sendiri.sumber
Di sini untuk memberikan jawaban yang diperbarui. Saya menemukan posting ini sangat membantu dalam menjawab pertanyaan tentang cara memperpanjang Blok Galeri.
Singkatnya, disarankan untuk hanya membuat blok baru daripada memperpanjang yang sudah ada. Dari pos di tautan saya di atas:
Tautan di atas juga merujuk plugin Create-Guten_Block yang merupakan alat baris perintah yang akan menghasilkan semua yang Anda butuhkan untuk memulai dengan pembuatan Blok. Alat ini sangat mudah digunakan, dan setup mudah.
Dengan sumber daya ini, saya dapat menemukan cara mengembangkan blok galeri khusus dalam waktu singkat
sumber