Qual é a diferença entre get_site_option e get_blog_option?

8

Estou tentando entender a diferença entre get_site_option () e get_blog_option () .

São blog e site duas coisas diferentes? Desculpas se esta questão parece básica, mas quando se refere a um site WordPress, eu sempre usei ambos os termos muito vagamente (para significar a mesma coisa). Agora estou me perguntando se existe alguma diferença?

    
por henrywright 15.03.2015 / 00:52

2 respostas

15

get_option() retorna uma opção para o atual blog.

Na instalação de um único site, o blog atual é o único blog. Então, pegue get_option() retorna a opção para isso.

get_site_option() é usado para recuperar uma opção em toda a rede. Isso significa que você pode obter a mesma opção em qualquer site da rede.

Quando esta função é usada em uma única instalação, normalmente retorna a mesma coisa de get_option() . O valor pode mudar porque get_site_option() aciona ganchos de filtro que não são acionados por get_option() .

Observe que, uma vez que a tabela $wpdb->options seja específica do blog, as opções de toda a rede são armazenadas no $wpdb->sitemeta tabela, que é específica de instalações multisite.

get_blog_option() é a única entre as três funções que não t recebe o nome da opção como primeiro argumento, mas seu primeiro argumento é $blog_id .

Na verdade, ele é usado em instalações multisite para recuperar uma opção de um blog específico cujo ID é conhecido.

O que esta função faz é:

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

return $value;

Se $blog_id for o mesmo do ID do blog atual, o WordPress ignorará a parte switch_to_blog e só chamará get_option() .

Esta função é definida no arquivo wp-includes/ms-blogs.php que é carregado apenas para instalação em vários sites, portanto, get_blog_option() não está definido em instalações de site único.

    
por gmazzap 15.03.2015 / 04:50
6

get_site_option() - Obtém uma opção de largura de rede. Esta opção é normalmente adicionada na seção Configurações de administração de rede de uma configuração multisite. Se eu tivesse 50 sites, seria uma dor ir a 50 sites diferentes e definir o mesmo valor de opção. Em vez disso, eu poderia definir o valor da opção uma vez e aplicá-lo na rede para todos os sites. Veja enlace

get_blog_option() - Permite obter o valor de uma opção para um site específico. Um exemplo pode ser obter o valor de uma opção específica do usuário para cada site. Assim, eu poderia obter todos os sites aos quais o usuário pertence também, fazer um loop pela lista de IDs de sites e usar get_blog_option() passando o blog_id e o nome da opção e recuperar o resultado. É uma função de conveniência que basicamente faz o seguinte:

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

Veja enlace

tl; dr: get_site_option() obtém um valor de largura de rede, get_blog_option() obtém um valor específico para um determinado site sem precisar alternar para esse site primeiro por conta própria.

    
por kingkool68 15.03.2015 / 04:42

Tags