WordPress関数を外部で使う

まず、WordPressの関数を外部で使用するには「wp-load.php」というファイルを読み込まないといけません。

「wp-load.php」はwordpressディレクトリの直下にあるファイルで(同階層に「wp-content」ディレクトリや「wp-includes」ディレクトリがある場所です)、 各関数の定義ファイルやクラスファイルの読み込みの起点になっているファイルです。

Laravel内でWordPress関数を使う

ディレクトリ内のindex.phpの一番上の行に記述します。(最初コントローラー内で読み込んでみたのですが、Laravelの仕組みとぶつかってしまってエラー表示が出ました。)

以下、index.phpのコードになります。

// ↓この記述を追加
require __DIR__ . '/../../wp_laravel_connect/wp/wp-load.php';

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package Laravel
 * @author  Taylor Otwell 
 */

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels great to relax.
|
*/

require __DIR__ . '/../vendor/autoload.php';

/*
以下、省略します。
*/

上記のパスは「index.php」を起点としたWordPressの「wp-load.php」への相対パスになっていますので、各々の環境に合わせて変更してみてください。

実際に表示確認

実際にWordPressの関数が使えるか、以下コードを表示確認用のブレードファイルに書いてみました。

@php
  $id = 1;
  $test_post = get_post($id);
  var_dump($test_post);
@endphp


そうする以下画像のように 投稿 IDが1の、「Hello world!」の記事情報が表示されました。


まとめ

LaravelでWordPress関数を使う機会は実際はあまりないと思いますが、LaravelやWordPressがどういったファイルを起点に様々な機能が呼び出されるかを考えるきっかけになったように思います。