web-dev-qa-db-fra.com

Multisite: comment stocker les options globales par rapport aux options de site?

Hé là, je suis assez confus sur la façon de stocker les options de réseau dans une installation multisite WordPress.

La manière habituelle de stocker des paramètres dans WordPress est la suivante:

add_option();
update_option();
delete_option();

Cependant, la table wp_options est créée pour chaque site dans une installation multisite.

Les tableaux suivants sont spécifiques au sous-site:

myprefix_siteid_commentmeta          
myprefix_siteid_comments             
myprefix_siteid_links                
myprefix_siteid_options              
myprefix_siteid_postmeta             
myprefix_siteid_posts                
myprefix_siteid_term_relationships   
myprefix_siteid_term_taxonomy        
myprefix_siteid_termmeta             
myprefix_siteid_terms                

Les tableaux suivants couvrent l’ensemble du réseau:

myprefix_blogs // multisite specific
myprefix_blog_versions // multisite specific
myprefix_registration_log // multisite specific
myprefix_signups // multisite specific
myprefix_site // multisite specific
myprefix_sitemeta // multisite specific
myprefix_users
myprefix_usermeta

Voyez-vous le problème? Il n'y a pas de table adéquate pour stocker les options pour l'ensemble du réseau, ce qui est nul à mon avis.

Cependant, je suppose que vous stockez les options de réseau dans la table de base wp_options (myprefix_options). Cependant, je ne peux pas utiliser add_option () et update_option (), etc. sans utiliser switch_to_blog(1) auparavant.

Y a-t-il une meilleure possibilité? Si non, comment puis-je obtenir le préfixe de la table wp_options de base?

3
Blackbam

Il existe des fonctions pour enregistrer et récupérer des options à l'échelle du réseau:

add_network_option();

update_network_option();

get_network_option();

Les valeurs de ces options sont stockées dans wp_sitemeta.

4
Jacob Peattie