WordPress : Obtenir les options de la base de données à l’aide de la classe php

Publié par Jean-Michel le

Je veux créer une classe php qui obtient une option de la base de données wp (qui est un tableau d’options) et pouvoir appeler cette classe avec le nom de l’option et la classe pour renvoyer la valeur des options.

Est-ce que quelqu’un sait comment je ferais cela?

EDIT: j’ai essayé le code suivant

class N_Options {

    function __construct($name) {
        if(isset($name)):
            $options = get_option(THEME_SPACE . '_options');
            $option = $options[$name];
            echo $option;
        endif;
    }

}

Et j’ai essayé d’appeler l’option en utilisant

new N_Options('option');

Cela récupère l’option de la base de données très bien maintenant. Cependant, je pense que cela peut accéder à la base de données trop souvent car j’accéderai à cette classe encore et encore pour toutes mes options.

Existe-t-il un moyen de stocker ces options dans la classe en tant que variable de tableau et de continuer à appeler la classe pour regarder à l’intérieur de la variable sans appeler une nouvelle classe pour chaque option ?

Solution n°1 trouvée

regarde Options API dans wordpress codex, il y a tout ce dont tu as besoin je pense…

Solution n°2 trouvée

$autoloadSi vous avez enregistré votre option sans définir le quatrième paramètre, novos appels get_optionne déclencheront aucun appel supplémentaire à la base de données car toutes les options aotoload sont stockées dans le cache lorsque le site est chargé.

Pour le tester, ajoutez…

define( 'WP_DEBUG',         TRUE );
define( 'SAVEQUERIES',      TRUE );

… à votre wp-config.php, installez le plugin Debug Queries et regardez les vraies requêtes.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *