私は私の親テーマから私の子テーマにvendor/autoload.phpをオートロードしようとしています。
私が試したことがあるが役に立つにはならないもの:
function beast_theme_setup() {
$var1 = get_theme_root_uri() . '/beast/vendor/autoload.php';
$var2 = get_theme_root_uri() . '/beast/functions.php';
$var = locate_template( array( $var1, $var2), true, false );
var_dump($var);
}
add_action( 'after_setup_theme', 'beast_theme_setup', 11 );
そして
include get_theme_root_uri() . '/beast/vendor/autoload.php';
これに関するどんな助けでも素晴らしいでしょう。
ジェイクありがとう。
そのため、留意すべきことが1つまたは2つあります。
しかし重要なことに、タスクを単純化するために知っておく必要があるWPテーマに関する詳細情報があります。
まず、get_theme_root
は必要ではなく、代わりにget_template_directory()
を使うことができます、そしてそれはあなたに親テーマディレクトリを与えるので、親テーマ名をハードコーディングすることはありません。
これはあなたのコードをこれに単純化するはずです:
if ( file_exists( get_template_directory() . '/vendor/autoload.php' ) ) {
require get_template_directory() . '/vendor/autoload.php';
}
しかし、これでも必要ではないので、2番目の情報になります。
WordPressでは、子テーマfunctions.php
がロードされ、その直後に親テーマfunctions.php
がロードされます。
したがって、親テーマがオートローダをロードし、すべてのコードが本来の動作で実行されるようにする必要があります(オートローダ自体を除く)。こうすれば、親テーマのオートローダをまったくロードする必要がなくなります。