私は自分のテーマのファイルの1つでwordpressのget_option()
関数を使いたいのですが、それはWPとは関係ありません。それは他のテーマファイルと同じディレクトリにあるだけです。追加のIPN Paypal関連のアクションのためにこのファイルが必要ですが、WPに存在するoptionsテーブルからいくつかの値が必要になります。このファイルはwordpressから見落とされているので、get_option()
を使うことができないことを私は知っています。この機能だけを機能させるために私のテーマにwordpressの一部を含めることによるアプローチはありますか?
最も簡単な方法はwp-load.php
ファイルを含めることです。このファイルはすべてのWPコアをロードするので、WPファイルでget_option
などのPHP関数を使用できます。
include 'path/to/wp-load.php';
echo get_option( 'option_name' );
最短の方法はwp-load.php
をロードしてテンプレートエンジンのロードを中止することです(注意:あなたがヘッダファイルをロードするのであれば、interwebの多くのサイトで見られるようにそれを行うことはできません)。
# No need for the template engine
define( 'WP_USE_THEMES', false );
# Load WordPress Core
// Assuming we're in a subdir: "~/wp-content/plugins/current_dir"
require_once( '../../../wp-load.php' );
あなたの外部ファイルをWordPressのプラグインに変える。そうすれば、WPコア関数にフルアクセスできます。
このshouldはどのWordPressのインストール環境でも動作します。
<?php
function load_wp_load() {
$wp_did_header = true;
require_once($_SERVER['DOCUMENT_ROOT'] . '/index.php');
$matches = preg_grep('/wp-blog-header.php/', get_included_files());
if (!empty($matches)) {
$abspath = dirname(reset($matches)) . '/';
define('ABSPATH', $abspath);
require_once(ABSPATH . 'wp-load.php');
}
}
?>