web-dev-qa-db-ja.com

WordPressをnonにロードする方法 WP ページ?

私は自分のテーマのファイルの1つでwordpressのget_option()関数を使いたいのですが、それはWPとは関係ありません。それは他のテーマファイルと同じディレクトリにあるだけです。追加のIPN Paypal関連のアクションのためにこのファイルが必要ですが、WPに存在するoptionsテーブルからいくつかの値が必要になります。このファイルはwordpressから見落とされているので、get_option()を使うことができないことを私は知っています。この機能だけを機能させるために私のテーマにwordpressの一部を含めることによるアプローチはありますか?

6
menislici

最も簡単な方法はwp-load.phpファイルを含めることです。このファイルはすべてのWPコアをロードするので、WPファイルでget_optionなどのPHP関数を使用できます。

include 'path/to/wp-load.php';

echo get_option( 'option_name' );
5
Anh Tran

最短の方法は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' );
5
kaiser

あなたの外部ファイルをWordPressのプラグインに変える。そうすれば、WPコア関数にフルアクセスできます。

4
Abdussamad

この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');
  }
}
?>
0
Kodie Grantham