Qual è la differenza tra get_site_option e get_blog_option?


9

Sto cercando di capire la differenza tra get_site_option () e get_blog_option () .

Sono blog e sito due cose diverse? Mi scuso se questa domanda sembra di base, ma quando mi riferisco a un sito Web WordPress, ho sempre usato entrambi i termini in modo approssimativo (per indicare la stessa cosa). Ora mi chiedo se ci sia differenza?

Risposte:


15

get_option()restituisce un'opzione per il blog corrente .

Nell'installazione di un singolo sito, il blog corrente è l'unico blog. Quindi get get_option()restituisce l'opzione per questo.


get_site_option()viene utilizzato per recuperare un'opzione in tutta la rete. Significa che puoi ottenere la stessa opzione da qualsiasi sito della rete.

Quando questa funzione viene utilizzata in una singola installazione, normalmente restituisce la stessa cosa get_option(). Il valore può cambiare perché i get_site_option()ganci del filtro trigger non sono attivati ​​da get_option().

Si noti che una volta che la $wpdb->optionstabella è specifica per il blog, le opzioni di rete sono memorizzate nella $wpdb->sitemetatabella, ovvero specifiche delle installazioni multisito.


get_blog_option()è l'unica tra le tre funzioni che non riceve il nome dell'opzione come primo argomento, ma il suo primo argomento è $blog_id.

In effetti, viene utilizzato nelle installazioni multisito per recuperare un'opzione da un blog specifico di cui è noto l'id.

Cosa fa questa funzione è:

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

return $value;

Se $blog_idè lo stesso dell'attuale ID blog, WordPress salta semplicemente la switch_to_blogparte e chiama semplicemente get_option().

Questa funzione è definita nel file wp-includes/ms-blogs.phpcaricato solo per l'installazione get_blog_option()su più siti , quindi non è definita nelle installazioni su un unico sito.


6

get_site_option()- Ottiene un'opzione a livello di rete. Questa opzione viene in genere aggiunta nella sezione Impostazioni amministratore di rete di una configurazione multisito. Se avessi 50 siti, sarebbe un problema andare in 50 siti diversi e impostare lo stesso valore di opzione. Invece ho potuto impostare il valore dell'opzione una volta e farlo applicare in tutta la rete per tutti i siti. Vedi http://codex.wordpress.org/Function_Reference/get_site_option

get_blog_option()- Consente di ottenere il valore di un'opzione per un sito specifico. Un esempio potrebbe essere quello di ottenere il valore di un'opzione specifica dell'utente per ciascun sito. Quindi potrei ottenere tutti i siti a cui appartiene anche l'utente, get_blog_option()scorrere l' elenco degli ID dei siti e usare passare il blog_idnome dell'opzione e e ottenere il risultato. È una funzione di convenienza che praticamente fa quanto segue:

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

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

tl; dr: get_site_option() ottiene un valore a livello di rete, get_blog_option()ottiene un valore specifico per un determinato sito senza dover passare prima a quel sito da solo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.