Sebagai contoh, kami memiliki dua CPT, Buku dan Penulis, dan kami ingin menyimpan metadata Buku (yaitu parent_id, isbn, subtitle, average_rating, ratings_count, publishing_date, num_pages, bisac_code, author_id, dll) dalam tabel DB khusus " Buku" dan juga menyimpan metadata Penulis (yaitu jumlah_karya, tanggal_kelahiran, jumlah_penggemar, peringkat_rata-rata, dll) dalam tabel DB khusus "Penulis".
Kami kemudian ingin menanyakan data seperti ini:
SELECT p.post_id, p.post_title, p.post_content, b.subtitle, b.average_rating, a.post_tile as author_name
FROM wp_posts as p
INNER JOIN books as b ON p.post_id = b.parent_id
INNER JOIN authors as a ON b.author_id = a.id
WHERE b.average_rating => 3 AND YEAR(b.publication_date) => 2007 AND bisac_code = 'FIC009050' AND a.average_rating => 3
Menyimpan semua metadata CPT dalam wp_postmeta
bukanlah pilihan karena pencarian lebih dari 1 juta baris akan sangat lambat dan tidak berskala dan itulah alasan mengapa WooCommerce memindahkan pesanan dan produk ke tabel DB khusus juga.
Apakah saya dapat menambahkan bidang khusus/blok meta ke dua CPT di Gutenberg dan kemudian menyimpan data meta itu di tabel basis data khusus?
Anda sudah dapat melakukan ini tanpa perlu mengubah Gutenberg. Anda dapat melakukannya sekarang tanpa Gutenberg sebenarnya. Kami melakukannya pada proyek-proyek kami semi regulrly.
@pmgarman Ya, Anda sudah dapat menyimpan metadata CPT dalam tabel db khusus tanpa Gutenberg, tetapi saya cukup yakin bahwa Anda belum dapat melakukannya dengan Gutenberg.
Blok penyusun yang menyimpan sesuatu di beberapa bidang CPT dimungkinkan menggunakan kait EntityProvider dan useEntityProperty. Anda dapat memeriksa cara kerja blok PostTitle, PostExcerpt....
Komentar yang paling membantu
@pmgarman Ya, Anda sudah dapat menyimpan metadata CPT dalam tabel db khusus tanpa Gutenberg, tetapi saya cukup yakin bahwa Anda belum dapat melakukannya dengan Gutenberg.