web-dev-qa-db-ja.com

未定義機能の呼び出し

私が達成したいことを実行するための他の、おそらくよりよい方法があることを私は知っているが、私はこの解決策を使用しなければならない。

私は2つのスタイルシートを持っています:

  • style.css - 通常のスタイルシート
  • style-dynamic.php - 最初のものにリンクされた動的スタイルシート

2番目のコードでは、いくつかのPHPコードを使用しています。

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

ここで重要なのは、style-dynamic.phpファイルはknowWordPressの機能を実行しないことです。上記のコードは次のようになります。

致命的な誤り:未定義関数get_option()の呼び出し C:\ xampp\htdocs\wordpress\wp-content\themes\mytheme\style-dynamic.php オンラインで 12年

私はwp_load.phpをロードしなければならないと思うだけですが(それだけ?)、それはトリッキーです。私はrequire_onceを試していましたが、wp-load.phpファイルがあるWordPressのメインディレクトリにテーマディレクトリから直接ジャンプできるかどうかわかりません。

編集

もちろん

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

別のエラーを出力します。

未定義の定数ABSPATHの使用 - 'ABSPATH'と仮定

1
Wordpressor

Christ、私はまた数日間ストレートで何かを戦っていました、そしてStackExchangeで尋ねた20分後に解決策を見つけました。どうして?

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

うまくいけば遅れることは決してないより。上記の解決方法(Wordpressorによる)が機能していない場合は、wp-load.phpを次のように読み込むことができます。

// 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');

必ずTHEME_NAMEをテーマの名前に置き換えてください。

0
cr0z3r