web-dev-qa-db-fra.com

Appel à un problème de fonction non défini

Je sais qu'il existe d'autres moyens, peut-être meilleurs, de faire ce que je veux réaliser, mais je dois utiliser cette solution.

J'ai deux stylesheets:

  • style.css - feuille de style normale
  • style-dynamic.php - feuille de style dynamique liée au premier

J'utilise du code PHP dans le second, comme:

#body {
    background-color: <?php echo get_option('theme_background'); ?>;
}

Le problème est que le fichier style-dynamic.php ne fonctionne pasknow/ WordPress, et que le code ci-dessus donne:

Erreur fatale: Appel à la fonction non définie get_option() dans C:\xampp\htdocs\wordpress\wp-content\themes\mytheme\style-dynamic.php en ligne 12

Je suppose que je dois charger wp_load.php (seulement?) Et c'est délicat, car je ne sais pas comment exactement? J'essayais require_once, mais je ne suis pas sûr de pouvoir passer directement du répertoire theme au répertoire principal WordPress où le fichier wp-load.php est?

Modifier

Bien sûr

require_once(ABSPATH . 'wp-load.php');

Émet une autre erreur:

Utilisation de la constante non définie ABSPATH - supposée 'ABSPATH'

1
Wordpressor

Bon sang, encore une fois, je me suis battu avec quelque chose pendant quelques jours et j'ai trouvé une solution 20 minutes après avoir demandé à StackExchange. POURQUOI?

require_once('../../../wp-load.php');
5
Wordpressor

J'espère que mieux vaut tard que jamais; Au cas où la solution ci-dessus (par Wordpressor) ne fonctionnerait pas, vous pouvez charger wp-load.php comme ceci:

// allow us to use core wordpress functions
    $oldURL = dirname(__FILE__);
    $newURL = str_replace(DIRECTORY_SEPARATOR . 'wp-content' . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . 'THEME_NAME' . DIRECTORY_SEPARATOR . 'assets', '', $oldURL);
    include($newURL . DIRECTORY_SEPARATOR . 'wp-load.php');

Assurez-vous de remplacer THEME_NAME par le nom de votre thème.

0
cr0z3r