単体のPHPファイルでWordPressの関数を取り扱う
投稿日:2018年3月12日 / 更新日:2019年9月12日
経緯
外部システムの情報を読み込むためのapiを定期実行する必要があり、
用意したcron用の素のPHPファイルではwordpress独自の関数が使えなかった。
やったこと
phpファイルの先頭でwp-load.phpを読み込む
require_once((dirname( __FILE__ ) . '/wp-load.php' );
パスの指定はファイルの置く場所に依存しますが今回の場合Wordpressのテーマディレクトリ内に配置したので、
絶対パスを相対的に記述する方法で記述するとこのような形になりました。
require_once(dirname(dirname(dirname(dirname( __FILE__ )))) . '/wp-load.php' );
先頭で読み込んでおけば全てのWordpressの関数が利用できるようになるようです。
「wp-load.php」って何?
そもそもwp-load.phpとは何のためのファイルかと言いますと、
Wordpressはルートディレクトリのindex.phpから順番にWordpressの機能を構成するファイルを読み込んでいるのですが、
その中で
[index.php => wp-blog-header.php => wp-load.pnp]
と3番目に読み込まれるファイルとなっています。
そしてwp-load.phpからWordpressの機能や関数を定義しているwp-includesディレクトリ内のファイル群を扱うためのphpファイルを読み込んでいます。
従ってWordpressの構成から外れたphpファイルであってもwp-load.phpを読み込んであげることによってWordpressの関数が利用できるようになります。
まとめ
・Wordpressの構成から外れたPHPファイルであってもwp-load.phpを読み込むことでWordpressの関数が利用可能。
・パスの指定は絶対パスで指定する。