2010-03-18 11 views
2

Est-il possible d'ajouter un écran d'options à un thème Wordpress MU (options sauvegardées pour chaque utilisateur, donc sur le blog, pas sur l'ensemble du site)?wordpress mu thème options par utilisateur

Je suis habitué à programmer des thèmes wordpress, mais je suis un peu perplexe quant à la façon dont faire la personnalisation se produire dans un environnement multi-utilisateur ...

Répondre

1

Wow, personne ne vous a répondu après tout ce temps? D'accord, voici la réponse. Si vous inspectez votre base de données MySQL après la mise en route de quelques blogs WPMU, vous remarquerez que chaque blog possède un préfixe de table distinct. Le préfixe wp_1_ va sur le blog d'administration principal. Et puis wp_2_ prefix et ainsi de suite vont à tous les blogs admin non-principaux que vous créez dans le système wp-admin. Si vous voulez utiliser la fonction Codex pour accéder au préfixe de la table, c'est en fait facile - faites simplement "global $ table_prefix;". En fait, WordPress émet une tonne de vars globaux qui sont très utiles et vous pouvez trouver ce qu'ils font en faisant "print_r ($ GLOBALS); die();" dans comme un plugin ou un fichier de thème. Mais de toute façon, la réponse à votre question est que si vous regardez dans la base de données MySQL, vous trouverez que chaque blog dans WPMU a sa propre table d'options, et il est séparé, pas sur tout le site, mais sur tout le blog - juste comme vous le souhaitiez. Et lorsque vous utilisez l'API d'options WordPress standard, il accède automatiquement à la table d'options dont vous avez besoin sans avoir à utiliser l'objet global $ wpdb et sans avoir besoin d'utiliser la chaîne globale $ table_prefix. Donc, si vous utilisez get_option(), update_option(), add_option(), et delete_option() - tout cela fonctionnera encore dans un environnement WPMU. Et même si le dossier plugins est partagé entre tous les blogs, les paramètres d'un plugin ne sont pas exclusifs à chaque blog. Maintenant, si vous n'utilisez pas l'API WP Options dans le Codex, mais que vous utilisez l'objet global $ wpdb, alors vous devez savoir que vous devrez adresser les tables par le $. table_prefix chaîne globale dans le chemin de la table. Il y a des cas où cela est souhaitable, comme avoir beaucoup de données que vous devez stocker dans une table personnalisée. Par exemple, stocker HTTP_REFERER et les informations de l'agent utilisateur dans une table pour les connexions entrant.

+0

cool, donc c'est en fait la même chose que pour le wordpress standard. Merci beaucoup! – pixeline

Questions connexes