私が達成したいことを実行するための他の、おそらくよりよい方法があることを私は知っているが、私はこの解決策を使用しなければならない。
私は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'
と仮定
Christ、私はまた数日間ストレートで何かを戦っていました、そしてStackExchangeで尋ねた20分後に解決策を見つけました。どうして?
require_once('../../../wp-load.php');
うまくいけば遅れることは決してないより。上記の解決方法(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をテーマの名前に置き換えてください。