¿Cuál es la diferencia entre get_site_option y get_blog_option?

9

Estoy tratando de entender la diferencia entre get_site_option () y get_blog_option () .

¿Son blog y sitio dos cosas diferentes? Disculpas si esta pregunta parece básica, pero cuando me refiero a un sitio web de WordPress, siempre he usado ambos términos de manera muy flexible (para significar lo mismo). Ahora me pregunto si hay alguna diferencia.

henrywright
fuente

Respuestas:

15

get_option()devuelve una opción para el blog actual .

En la instalación de un solo sitio, el blog actual es el único blog. Entonces get get_option()devuelve la opción para ello.


get_site_option()se utiliza para recuperar una opción en toda la red. Significa que puede obtener la misma opción desde cualquier sitio de la red.

Cuando esta función se utiliza en una instalación única, normalmente devuelve lo mismo de get_option(). El valor puede cambiar porque get_site_option()el filtro de desencadena engancha que no son activados por get_option().

Tenga en cuenta que una vez que la $wpdb->optionstabla es específica del blog, las opciones de toda la red se almacenan en la $wpdb->sitemetatabla, es decir, las instalaciones de varios sitios.


get_blog_option()es la única de las tres funciones que no recibe el nombre de la opción como primer argumento, pero su primer argumento es $blog_id.

De hecho, se utiliza en instalaciones de varios sitios para recuperar una opción de un blog específico cuya identificación se conoce.

Lo que hace esta función es:

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

return $value;

Si $blog_ides lo mismo que la identificación actual del blog, WordPress simplemente omite la switch_to_blogparte y solo llama get_option().

Esta función se define en el archivo wp-includes/ms-blogs.phpque se carga solo para la instalación multisitio, por get_blog_option()lo que no se define en instalaciones de sitio único.

gmazzap
fuente
6

get_site_option()- Obtiene una opción de toda la red. Esta opción generalmente se agrega en la sección Configuración de administrador de red de una configuración multisitio. Si tuviera 50 sitios, sería difícil ir a 50 sitios diferentes y establecer el mismo valor de opción. En cambio, podría establecer el valor de la opción una vez y hacer que se aplique a través de la red para todos los sitios. Ver http://codex.wordpress.org/Function_Reference/get_site_option

get_blog_option()- Le permite obtener el valor de una opción para un sitio específico. Un ejemplo podría ser obtener el valor de una opción específica del usuario para cada sitio. Por lo tanto, podría obtener todos los sitios a los que pertenece el usuario también, recorrer la lista de ID de sitios y usar get_blog_option()pasar el blog_idnombre de la opción y obtener el resultado. Es una función de conveniencia que prácticamente hace lo siguiente:

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

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

tl; dr: get_site_option() obtiene un valor de toda la red, get_blog_option()obtiene un valor específico para un sitio determinado sin necesidad de cambiar a ese sitio primero por su cuenta.

kingkool68
fuente