76

カスタム.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/コンストラクタ/reports/ testreport.php

(requireは正しいパスを指しています。それをいじると、警告が表示されます:require_once(../../../ wp-blog-header.php):ストリームを開くことができませんでした...したがって、パスは正しいです。)

見落としているものはありますか?このwpファイルを含めることができないのはなぜですか?wp関数を含める正しい方法は何ですか?

助けてくれてありがとう、Sziro

4

6 に答える 6

140

あなたは正しい方向に進んでいます。代わりにこれを試してください:

require_once("../../../../wp-load.php");
于 2013-03-09T03:00:01.880 に答える
30

カスタム.phpファイルでwp関数を使用するには、ファイルに含める必要がありwp-load.phpます。次の行を追加することでこれを行うことができます。

require_once(PATH_TO.'/wp-load.php');

WordPressがドキュメントルートにある場合は、代わりに次を追加します。

require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
于 2016-05-23T06:20:12.877 に答える
4

誰かが新しいPHPバージョン(ver> = 5.5.x)をインストールしている場合は、WordPressWebサイトディレクトリ自体のルートスクリプトで以下のコードを試すこともできます。

<?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";

これはより直接的でクリーンなアプローチであり、手動でスラッシュを追加したり、ディレクトリを変更したりする必要はないと思い..ます。

これが誰かを助けることを願っています。

于 2017-08-22T09:10:24.493 に答える
3
require_once(dirname(__FILE__) . '/options.php');

これは、WordPressにファイルを含めるためのより良い方法です。

于 2014-02-05T09:13:14.063 に答える
2

外部ファイルはWordPressの機能に簡単にアクセスできます。wp-load.php外部ファイルにファイルを含める必要があります。このwp-load.phpファイルは、WordPressインストールのルートにあります。例:ファイルがtest.phpWordPressインストールのルートディレクトリにあるとします。

<?php
require_once('wp-load.php');
// Your custom code
?>

出典:外部ファイルでWordPress機能にアクセスする方法

于 2018-11-13T16:29:13.283 に答える
1

このメソッドを使用して、WordPressの外部にWordPress環境をロードします。

  if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php')) {

      /** Loads the WordPress Environment and Template */
      require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');

  }
于 2020-04-14T04:54:54.297 に答える