Apa perbedaan antara get_site_option dan get_blog_option?

9

Saya mencoba memahami perbedaan antara get_site_option () dan get_blog_option () .

Apakah blog dan situs adalah dua hal yang berbeda? Permintaan maaf jika pertanyaan ini tampaknya mendasar, tetapi ketika merujuk ke situs web WordPress, saya selalu menggunakan kedua istilah dengan sangat longgar (artinya sama). Saya sekarang bertanya-tanya apakah ada perbedaan?

Henryrywright
sumber

Jawaban:

15

get_option()mengembalikan opsi untuk blog saat ini .

Dalam instalasi satu situs, blog saat ini adalah satu-satunya blog. Jadi dapatkan get_option()pengembalian opsi untuk itu.


get_site_option()digunakan untuk mengambil opsi di seluruh jaringan. Ini berarti bahwa Anda bisa mendapatkan opsi yang sama dari situs jaringan mana pun.

Ketika fungsi ini digunakan dalam instalasi tunggal, biasanya mengembalikan hal yang sama get_option(). Nilai dapat berubah karena get_site_option()pemicu filter hook yang tidak dipicu oleh get_option().

Perhatikan bahwa setelah $wpdb->optionstabel tersebut khusus untuk blog, opsi di seluruh jaringan disimpan dalam $wpdb->sitemetatabel, yang khusus untuk instalasi multisite.


get_blog_option()adalah satu-satunya di antara tiga fungsi yang tidak menerima nama opsi sebagai argumen 1, tetapi argumen 1 adalah $blog_id.

Bahkan, ini digunakan dalam instalasi multisite untuk mengambil opsi dari blog tertentu yang id-nya diketahui.

Apa fungsi ini adalah:

switch_to_blog( $blog_id );
$value = get_option( $option, $default );
restore_current_blog();

return $value;

Jika $blog_idsama dengan id blog saat ini, WordPress hanya akan melewatkan switch_to_blogbagian dan hanya menelepon get_option().

Fungsi ini didefinisikan dalam file wp-includes/ms-blogs.phpyang dimuat hanya untuk instalasi multisite, jadi get_blog_option()tidak didefinisikan dalam instalasi situs tunggal.

gmazzap
sumber
6

get_site_option()- Mendapat opsi lebar jaringan. Opsi ini biasanya ditambahkan di bagian Pengaturan Admin Jaringan dari pengaturan multisite. Jika saya memiliki 50 situs, akan merepotkan untuk pergi ke 50 situs yang berbeda dan menetapkan nilai opsi yang sama. Alih-alih, saya bisa menetapkan nilai opsi satu kali dan menerapkannya di seluruh jaringan untuk semua situs. Lihat http://codex.wordpress.org/Function_Reference/get_site_option

get_blog_option()- Memungkinkan Anda mendapatkan nilai opsi untuk situs tertentu. Salah satu contoh mungkin untuk mendapatkan nilai opsi khusus pengguna untuk setiap situs. Jadi saya bisa mendapatkan semua situs milik pengguna juga, mengulangi daftar ID situs, dan menggunakan get_blog_option()melewati blog_idopsi dan nama dan kembali hasilnya. Ini adalah fungsi kenyamanan yang cukup banyak melakukan hal berikut:

switch_to_blog( $id ); $value = get_option( $option_name ); restore_current_blog();

Lihat http://codex.wordpress.org/Function_Reference/get_blog_option

tl; dr: get_site_option() mendapat nilai lebar jaringan, get_blog_option()mendapat nilai spesifik untuk situs tertentu tanpa harus beralih ke situs itu sendiri terlebih dahulu.

kingkool68
sumber