Sự khác biệt giữa get_site_option và get_blog_option là gì?


9

Tôi đang cố gắng hiểu sự khác biệt giữa get_site_option ()get_blog_option () .

Có phải blogtrang web là hai thứ khác nhau? Xin lỗi nếu câu hỏi này có vẻ cơ bản, nhưng khi đề cập đến một trang web WordPress, tôi luôn sử dụng cả hai thuật ngữ rất lỏng lẻo (có nghĩa là cùng một điều). Bây giờ tôi đang tự hỏi nếu có một sự khác biệt?

Câu trả lời:


15

get_option()trả về một tùy chọn cho blog hiện tại

Trong cài đặt trang web duy nhất, blog hiện tại là blog duy nhất. Vì vậy, nhận được get_option()trả về tùy chọn cho nó.


get_site_option()được sử dụng để truy xuất một tùy chọn trên toàn mạng. Điều đó có nghĩa là bạn có thể nhận được tùy chọn tương tự từ bất kỳ trang web nào của mạng.

Khi chức năng này được sử dụng trong cài đặt đơn, nó thường trả về cùng một thứ get_option(). Giá trị có thể thay đổi vì get_site_option()móc bộ lọc kích hoạt không được kích hoạt bởi get_option().

Lưu ý rằng một khi $wpdb->optionsbảng là dành riêng cho blog, các tùy chọn toàn mạng được lưu trữ trong $wpdb->sitemetabảng, đó là cụ thể của cài đặt nhiều trang.


get_blog_option()là hàm duy nhất trong số ba hàm không nhận được tên tùy chọn làm đối số thứ nhất, nhưng đối số thứ nhất là $blog_id.

Trong thực tế, nó được sử dụng trong các cài đặt nhiều trang để lấy một tùy chọn từ một blog cụ thể có id được biết đến.

Chức năng này làm gì là:

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

return $value;

Nếu $blog_idgiống với id blog hiện tại, WordPress chỉ cần bỏ qua switch_to_blogphần đó và chỉ gọi get_option().

Chức năng này được xác định trong tệp wp-includes/ms-blogs.phpchỉ được tải để cài đặt nhiều trang, do đó get_blog_option()không được xác định trong cài đặt trang web đơn.


6

get_site_option()- Có được một tùy chọn rộng mạng. Tùy chọn này thường được thêm vào trong phần Cài đặt quản trị mạng của thiết lập nhiều trang. Nếu tôi có 50 trang web, sẽ rất khó để đi đến 50 trang web khác nhau và đặt cùng một giá trị tùy chọn. Thay vào đó tôi có thể đặt giá trị tùy chọn một lần và áp dụng giá trị đó trên toàn mạng cho tất cả các trang. Xem http://codex.wordpress.org/Function_Reference/get_site_option

get_blog_option()- Cho phép bạn nhận được giá trị của một tùy chọn cho một trang web cụ thể. Một ví dụ có thể là lấy giá trị của tùy chọn cụ thể của người dùng cho từng trang. Vì vậy, tôi có thể nhận được tất cả các trang web mà người dùng cũng thuộc về, lặp qua danh sách ID trang web và sử dụng get_blog_option()chuyển tên blog_idvà tùy chọn và nhận lại kết quả. Đây là một chức năng tiện lợi mà khá nhiều người làm như sau:

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

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

tl; dr: get_site_option() nhận giá trị toàn mạng, get_blog_option()nhận giá trị cụ thể cho một trang web nhất định mà không cần phải tự mình chuyển sang trang đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.