December 2, 2021

Panduan Pengembang Utama Untuk Basis Data WordPress

Panduan Pengembang Utama Untuk Basis Data WordPress – Di sini, di Delicious Brains, kami makan, minum, dan tidur di database. Namun, kami percaya bahwa setiap pengembang yang bekerja dengan WordPress harus memiliki beberapa tingkat pengetahuan tentang database yang berada di belakang sebuah situs. Jadi saya telah mengumpulkan panduan utama untuk database WordPress.

phpbbstyles

Panduan Pengembang Utama Untuk Basis Data WordPress

Basis Data WordPress

phpbbstyles – Basis data adalah bagian penting dari situs web WordPress. WordPress menggunakan sistem manajemen database MySQL dan membutuhkan MySQL versi 5.6 dan lebih tinggi.

Ini juga berfungsi pada MariaDB versi 10.1 atau lebih tinggi. MariaDB adalah garpu MySQL berlisensi GPL penuh, yang dapat digunakan sebagai pengganti drop-in untuk MySQL. Kinsta telah menulis lebih dalam tentang sejarah MariaDB dan beberapa perbedaannya dengan MySQL .

Mesin Penyimpanan MySQL

Sebuah mesin penyimpanan adalah bagian dari database yang bertanggung jawab untuk membaca dan menulis data. Sejak MySQL 5.5, mesin penyimpanan default adalah InnoDB. Ini adalah mesin penyimpanan yang paling umum digunakan, karena memiliki penguncian tingkat baris alih-alih penguncian tingkat tabel penuh (sangat penting ketika Anda melakukan ekspor/pencadangan mysqldump), memiliki dukungan untuk transaksi (memungkinkan Anda untuk melakukan dan mengembalikan SQL pernyataan), dan memiliki dukungan penuh untuk kunci asing dan batasan hubungan.

Baca Juga : 10 Plugin WordPress Terpopuler Sepanjang Masa

MyISAM adalah mesin penyimpanan yang digunakan di masa lalu oleh WordPress dan Anda mungkin masih memiliki situs WordPress lama yang menjalankannya. Beberapa situs bahkan mungkin memiliki campuran tabel yang menggunakan mesin penyimpanan MyISAM dan InnoDB.

Anda mungkin menemukan masalah pengkodean karakter saat memigrasikan database WordPress Anda dari satu server ke server lain, dan bertanya-tanya apa saja rangkaian karakter dan susunan yang disebutkan di artikel dukungan. Jadi apa itu set karakter dan koleksi?

Sebuah set karakter MySQL adalah satu set karakter yang diperbolehkan dalam sebuah string. Dalam alfabet ada 26 karakter – a sampai z. Setiap huruf diberi nomor, misalnya a = 1, b = 2, c = 3 dan seterusnya. Huruf adalah simbol dan nomor yang terkait adalah pengkodean.

Kombinasi semua huruf a hingga z, dan penyandian angka yang sesuai adalah yang membuat kumpulan karakter. MySQL mendukung banyak set karakter yang memungkinkan Anda untuk menyimpan hampir semua karakter dalam sebuah string.

Kolasi MySQL adalah seperangkat aturan yang digunakan untuk membandingkan karakter dalam kumpulan karakter tertentu. Untuk membandingkan string, database menggunakan angka pengkodean karakter untuk melakukan perbandingan. Contoh aturan Collation, adalah collation case-insensitive di mana string dibandingkan meskipun dalam karakter huruf kecil atau besar. Pengumpulan bisa menjadi sangat rumit seperti yang dijelaskan oleh dokumentasi MySQL :

kebanyakan susunan memiliki banyak aturan, tidak hanya untuk membedakan huruf besar, tetapi juga untuk membedakan aksen (“aksen” adalah tanda yang dilampirkan ke karakter seperti dalam bahasa Jerman ), dan untuk pemetaan beberapa karakter (seperti aturan bahwa = OE di salah satu dari dua koleksi Jerman).

MySQL memungkinkan Anda untuk menentukan set karakter dan susunan pada empat tingkat: server, database, tabel, dan kolom.

Untuk situs WordPress, rangkaian karakter yang disarankan adalah utf8mb4dan susunan yang disarankan adalah utf8mb4_unicode_ci. WordPress 4.2 memutakhirkan tabel dari utf8charset ke utf8mb4, memungkinkan penyimpanan karakter 4 byte yang berarti karakter Unicode apa pun dapat disimpan dalam database. Peter Tasker kami sendiri menulis panduan hebat untuk pengembang tentang cara kerja Unicode .

Tur Basis Data WordPress

Di bagian berikut, semua tabel akan dirujuk menggunakan awalan default ‘wp_’. Namun, untuk alasan keamanan , disarankan untuk menggunakan awalan yang berbeda saat memasang situs WordPress Anda. Jika Anda mencari deskripsi struktur tabel, dengan tipe data kolom dan indeks, maka lihatlah kodeks WordPress.

wp_posts

Tabel posts bisa dibilang tabel paling penting dalam database WordPress. Namanya terkadang melontarkan orang-orang yang meyakininya murni berisi postingan blog mereka. Sifat konten fleksibel tabel disediakan oleh kolom ‘post_type’ yang menunjukkan apakah baris tersebut adalah posting, halaman, lampiran, nav_menu_item atau jenis lainnya.

Tetapi fleksibilitas ini juga membuatnya sulit untuk didiskusikan dan dijelaskan. Pada dasarnya tabel berisi deretan objek konten dengan tipe yang berbeda, tetapi untuk kemudahan membaca, saya akan menyebut baris tersebut sebagai “postingan” di seluruh artikel ini.

wp_postmeta

Tabel ini menyimpan informasi tambahan tentang setiap posting. Ini adalah tabel vertikal yang menggunakan pasangan kunci/nilai untuk menyimpan datanya, teknik yang digunakan WordPress pada sejumlah tabel di seluruh database yang memungkinkan inti WordPress, plugin, dan tema untuk menyimpan data tanpa batas.

meta_id – nomor unik yang ditetapkan untuk setiap baris tabel.
post_id – ID postingan yang terkait dengan data. (Referensi ke tabel wp_posts .)
meta_key – kunci pengidentifikasi untuk bagian data.
meta_value – bagian data yang sebenarnya.

wp_komentar

Setiap posting yang memungkinkan diskusi dapat memiliki komentar yang diposting ke sana. Tabel ini menyimpan komentar tersebut dan beberapa data spesifik tentangnya. Informasi lebih lanjut dapat disimpan di wp_commentmeta .

comment_ID – nomor unik yang ditetapkan untuk setiap komentar.
comment_post_ID – ID kiriman yang terkait dengan komentar ini. (Referensi ke tabel wp_posts .)
comment_author – nama penulis komentar.
comment_author_email – Email penulis komentar.

wp_terms

Istilah adalah item dari taksonomi yang digunakan untuk mengklasifikasikan objek. Taksonomi apa? WordPress memungkinkan item seperti posting dan jenis posting khusus untuk diklasifikasikan dalam berbagai cara. Misalnya, saat membuat posting di WordPress, secara default Anda dapat menambahkan kategori dan beberapa tag ke dalamnya. Baik ‘Kategori’ dan ‘Tag’ adalah contoh taksonomi , yang pada dasarnya adalah cara untuk mengelompokkan berbagai hal.

Untuk mengklasifikasikan posting ini (bagaimana meta saya) saya akan memberikan kategori ‘Panduan’ dan tag ‘database’ dan ‘mysql’. Kategori dan tag adalah istilah yang akan dimuat dalam tabel ini.

term_id – nomor unik yang ditetapkan untuk setiap istilah.
nama – nama istilah.
slug – slug ramah URL dari nama tersebut.
term_group – kemampuan untuk tema atau plugin untuk mengelompokkan istilah bersama untuk menggunakan alias. Tidak diisi oleh inti WordPress itu sendiri.

wp_termmeta

WordPress 4.4 memperkenalkan tabel baru untuk menyimpan metadata tentang istilah – wp_termmeta. Term meta dapat diakses mirip dengan post meta dengan fungsi helper add_term_meta, get_term_meta, update_term_metadan delete_term_meta.

Meta istilah memungkinkan pengembang untuk menyimpan data khusus tentang istilah dengan cara standar. Misalnya, Anda mungkin ingin melampirkan gambar pada kategori posting untuk ditampilkan di halaman arsip kategori.

meta_id – nomor unik yang ditetapkan untuk setiap baris tabel.
term_id – ID dari istilah terkait. (Referensi ke tabel wp_terms .)
meta_key – kunci pengidentifikasi untuk bagian data.
meta_value – bagian data yang sebenarnya.

Baca Juga : Twenty Sixteen, Tema WordPress Buatan Automattic

wp_term_taxonomy

Mengikuti contoh wp_terms di atas, istilah ‘Panduan’, ‘database’ dan ‘mysql’ yang disimpan di wp_terms belum ada sebagai ‘Kategori’ dan sebagai ‘Tag’ kecuali jika diberi konteks. Setiap istilah diberi taksonomi menggunakan tabel ini.

Struktur tabel ini memungkinkan Anda untuk menggunakan istilah yang sama di berbagai taksonomi. Misalnya ‘Database’ dapat digunakan sebagai kategori untuk posting dan sebagai istilah taksonomi khusus untuk jenis posting khusus (pikirkan portfolio_category untuk item portofolio). Istilah Database akan ada sekali di wp_terms, tetapi akan ada dua baris di wp_term_taxonomy untuk setiap taksonomi.