web-dev-qa-db-ja.com

読み込めません WP 外部機能への機能

私は書店のウェブサイトを作成し、私のフロントページにヘッダー機能、フッター機能、およびログインメニューを得ました。

すべての関数はfunctions.phpで宣言されフックに接続されています。

私のフロントページは正しく動きます。

しかし、私はログインメニューのオプションの1つ(ファイルpage-non-member.php)から登録メニューファイルを呼び出そうとしていて、このページのヘッダとしてフロントページのuseヘッダを使用しようとしています。

これを使ってみます。

require( dirname( __FILE__ ) . '../wp-load.php' );
if ( function_exists( 'get_template_part' ) ) {
    echo "get_template_part found";
}
get_template_part( 'mybookshop', 'header' );  

またはその:

do_action( 'create_header_html', 'Make registration' );

しかしどちらの場合も、私は次のメッセージを受け取りました

警告:require(W:\ domains\wpfolder\wp-content\themes\mybookshop ../ wp-load.php):ストリームを開くことができませんでした:W:\ domains\wpfolder\wp-content \にそのようなファイルまたはディレクトリはありません4行目のthemes\mybookshop\page-not-member.php

致命的なエラー:require():必要な 'W:\ domains\wpfolder\wp-content\themes\mybookshop ../ wp-load.php'(include_path = '.; w:/modules/php/PHP-5.6)を開けませんでした"; w:/modules/php/PHP-5.6/PEAR/pear ')をW:\ domains\wpfolder\wp-content\themes\mybookshop\page-not-member.phpの4行目に表示します。

Structure of my folders:
-- WordPress root directory
 |-- file wp-load.php
 |
 ....
 |
 -- my site(bookshop) root directory
 |-- header.php,header.php, page-home-page.php, page-not-member.php, etc
 |
  ....

私はローカルサーバー(OpenServer)を使います。問題とは何ですか、どうすれば解決できますか?

1
adrian

まず第一に、それをしないでください。 WordPressのエンジンを外部のPHPファイルに含めることは全くお勧めできません。それは逆さまよりも欠点があります。

WordPressの機能にアクセスしたい場合は、テーマのフォルダ内にPHPファイルを作成するか、プラグインを作成してください。 URLから直接データにアクセスする必要がある場合は、AJAXリクエストを作成することもできます。

さて、あなたのエラーについて。テーマのファイルからwp-load.phpをインクルードしようとしているようです。もしそうなら、それは必要ではありません。テーマのファイルはすでにWordPressの機能にアクセスできます。 require...を削除するだけで大​​丈夫です。

いくつかの未知の理由でそうではないとしましょう、そしてあなたはwp-load.phpをインクルードしなければなりません。このファイルはインストールのルートフォルダに存在し、含めるには3回戻る必要があります。だからそれはこのようになります:

../../../wp-load.php

もう一度、しないでください。それは良い習慣ではありません。

2
Jack Johansson