web-dev-qa-db-ja.com

WordPressファイルの外部でWordPress機能を使用する正しい方法は何ですか?

WordPressファイルの外部でWordPress機能を初期化するための2つの方法を読みましたので、WordPressブログ以外のページやWebサイトでこれらの機能を使用できます。

これら2つの方法のどちらが正しい方法ですか?両方が正しい場合、各方法のユースケースは何ですか?どちらかの方法を使用することの違いは何ですか?

方法1:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-blog-header.php');
?>

方法2:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-load.php');
?>
58
alhoseany

ファイル間の違いはほとんどありません。 WordPressページを表示すると、最初に呼ばれるファイルはindex.phpです。そしてそれは、本質的にあなたの「方法1」です。

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');

ブログのヘッダーファイル(WordPressの残りの部分をキューに入れる)は直接wp-load.phpをロードし、WordPress自体を起動します。これがwp-blog-header.phpの大部分です:

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

だからあなたの2つの方法の違いは...ロードされているものです。

方法1はWordPressが自分自身をロードするために正確に行うことです(テーマをオフにすることを除いて)。あなたが all を必要としていて、デフォルトのフック/アクションをすべて起動したいのであれば、そのルートで行ってください。

方法2はもう少し先のステップです。 WordPressをすべてロードしますが、wp()を呼び出したり、テンプレートローダーを呼び出したりしません(テーマによって使用されます)。方法2はもう少し軽量になりますが、同じ機能を提供するはずです。

56
EAMann

あなたの質問からの方法2:

<?php 
define( 'WP_USE_THEMES', false ); // Don't load theme support functionality
require( './wp-load.php' );

wp-load.phpはWordPressのすべての機能へのアクセスです、それがすべてです。最初の行はWordPressにテーマファイルをロードしないように伝えます。多分ファイルはあなたの要求に必要であり、それから行を削除してください。

15
bueltge

wp-blog-header.phpはヘッダステータスを添付し、httpステータスコード404を返します。

wp-load.phpはしません

HTTPステータスコードをチェックするのでajaxを使用するときに注意するのに役立ちます

3
RayLau135

テーマのfunctions.phpをロードすると問題が発生することがあります。それは私の他のページのHTMLを壊していました。それで私は私がして私の問題を解決したのです。

define('STYLESHEETPATH', '');
define('TEMPLATEPATH', '');
require_once(RAIZ_WORDPRESS."/wp-load.php");
2

@ ninja08

XDebug php拡張を使用して、スクリプトを分析できます。

最初の行から;xdebug.profiler_enable = 1を削除してphp.iniファイルで;を有効にし、この後Apacheサーバーを再起動してwordpressサイトを実行します... xamppサーバーのtmpディレクトリで.. WincachGrind applicationでこのファイルを開きます。

今、あなたはあなたのスクリプトの地図を見ることができます

WincacheGrind Simple Wordpress Analyze

0
Mostafa