カスタム.phpファイルにWordPress関数を含めるにはどうすればよいですか?
詳細:私のテーマ(コンストラクター)の下にreportsという名前のディレクトリがあります。これらには、ダウンロード用のDOMPDFを含むサイトのデータからレポートを生成する.phpファイルが含まれています。これらの場合、WordPressエンジンが提供する関数、たとえばget_the_author_meta( 'user_firstname', $user_id )
を使用したいと思います。これらを使用すると、(当然)次のエラーが発生します。
致命的なエラー:15行目のROOT/public_html/wp-content/themes/constructor/reports/testreport.phpの未定義関数get_the_author_meta()の呼び出し
私はwp-blog-header.phpを含める必要があると信じるようになりました。 require_once("../../../../wp-blog-header.php");
を使用します。これにより、次の404エラーが発生します。
WebアドレスのWebページが見つかりませんでした:ROOT/wp-content/themes/constructor/reports/testreport.php
(requireは正しいパスを指します。それをいじると、Warning:require_once(../../../ wp-blog-header.php):ストリームを開くことができませんでした...正しい。)
私が見落としているものはありますか?このwpファイルを含めることができないのはなぜですか? wp関数を含める正しい方法は何ですか?
助けてくれてありがとう、Sziro
あなたは正しい軌道に乗っています。代わりにこれを試してください:
require_once("../../../../wp-load.php");
WordPress=がドキュメントのルートだった場合、ドットのないよりプロフェッショナルな方法:
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
誰かがより新しいPHPバージョン(ver> = 5.5.x)をインストールしている場合、ルートスクリプトのWordPress=ウェブサイトディレクトリ自体:
<?php
define("WP_ROOT", __DIR__);
define("DS", DIRECTORY_SEPARATOR);
require_once WP_ROOT . DS . "wp-load.php";
または
<?php
define("WP_ROOT", __DIR__);
define("DS", DIRECTORY_SEPARATOR);
require_once WP_ROOT . DS . "wp-blog-header.php";
これはより直接的でクリーンなアプローチであり、手動でスラッシュを追加したり、..
によってディレクトリを変更したりする必要はないと思います。
これが誰かを助けることを願っています。
require_once(dirname(__FILE__) . '/options.php');
これは、WordPressにファイルを含めるより良い方法です。
外部ファイルは、WordPress関数に簡単にアクセスできます。ファイルwp-load.php
外部ファイルに。 wp-load.php
ファイルは、WordPressインストールのルートにあります。例:ファイルがtest.php
WordPressインストールのルートディレクトリにあります。
<?php
require_once('wp-load.php');
// Your custom code
?>