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

8

Intento entender la diferencia entre get_site_option () y get_blog_option () .

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

    
pregunta henrywright 15.03.2015 - 00:52

2 respuestas

15

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

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

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

Cuando esta función se usa en una sola instalación, normalmente devuelve lo mismo de get_option() . El valor puede cambiar porque get_site_option() activa los enlaces del filtro que no son activados por get_option() .

Tenga en cuenta que una vez que la tabla $wpdb->options es específica del blog, las opciones de toda la red se almacenan en $wpdb->sitemeta tabla, que es específica de instalaciones multisitio.

get_blog_option() es la única entre las tres funciones que no lo hace " t 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 cuyo nombre 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_id es el mismo que el id del blog actual, WordPress simplemente omite la parte switch_to_blog y llama a get_option() .

Esta función se define en el archivo wp-includes/ms-blogs.php que se carga solo para la instalación en varios sitios, por lo que get_blog_option() no se define en las instalaciones de un solo sitio.

    
respondido por el gmazzap 15.03.2015 - 04:50
6

get_site_option() - Obtiene una opción para toda la red. Esta opción generalmente se agrega en la sección Configuración de administración de red de una configuración de varios sitios. Si tuviera 50 sitios, sería un dolor ir a 50 sitios diferentes y establecer el mismo valor de opción. En su lugar, podría establecer el valor de la opción una vez y hacer que se aplique en toda la red para todos los sitios. Consulte enlace

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, recorrer la lista de ID de sitios y usar get_blog_option() para pasar blog_id y el nombre de la opción y recuperar el resultado. Es una función de conveniencia que hace prácticamente lo siguiente:

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

Consulte enlace

tl; dr: get_site_option() obtiene un valor de 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.

    
respondido por el kingkool68 15.03.2015 - 04:42

Lea otras preguntas en las etiquetas