WordPress 開発環境がWocker。そのときのPHPファイルの実行について

WordPressがどういう仕組みで動いているのか知りたくて、詳解 WordPressを読んでいます。その中で記載されている、phpコマンドの使い方で分からないところがあり困っています。開発環境はWocker(バージョン0.7.0)を使用しています。
Wockerでコマンドを使う
具体的には、はew.2.4.show_tables.phpという、WordPressがインストールされたディレクトリ直下のファイルの実行です(コードはP.47から引用)
<?php require_once('wp-load.php'); $ret = $wpdb->get_results('SHOW TABLES', ARRAY_N); foreach($ret as $row) { echo $row[0] . "\n"; }
WordPress以外のPHP開発環境に関しては、実サーバーかvagrantによるローカル開発環境(いずれもCentOS)を使用しています。本書に書かれているとおり、次のコマンドを実行すれば良いのでしょう
$php ew.2.4.show_tables.php
このコマンドを実行すると、WordPressをインストールした際に生成されるテーブルの名前が表示されます。
wp_commentmeta wp_comments wp_links ...
ですが、WordPressの開発環境はWockerを使っているので、このコマンドは使えません。おそらくですが、WordPress向けコマンドラインツール「WP-CLI」をを使うのでしょう。
wp eval-fileではエラー
WP-CLIの内容について調べていると、SONICMOOV LAB(新しいタブで開く)さんがざっくりまとめてくれていました。
eval-file PHPファイルを読み込んで実行する(WordPressロード後)
今回、自分が実行したいコードはこれでしょう(おそらく)。「WordPressロード後」というのが、ちょっと気になりますが、実行してみましょう、えい!
$ wocker wp eval-file ew.2.4.show_tables.php
残念ながらエラーが出ますね〜(泣)。なのでload.phpを抜粋。
<?php /** * These functions are needed to load WordPress. * * @internal This file must be parsable by PHP4. * * @package WordPress */ /** * Turn register globals off. * * @since 2.1.0 * @access private */ function wp_unregister_GLOBALS() { if ( !ini_get( 'register_globals' ) ) return; if ( isset( $_REQUEST['GLOBALS'] ) ) die( 'GLOBALS overwrite attempt detected' ); // Variables that shouldn't be unset $no_unset = array( 'GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix' ); $input = array_merge( $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset( $_SESSION ) && is_array( $_SESSION ) ? $_SESSION : array() ); foreach ( $input as $k => $v ) if ( !in_array( $k, $no_unset ) && isset( $GLOBALS[$k] ) ) { unset( $GLOBALS[$k] ); } }
肝心なのは、”!ini_get( ‘register_globals’ )”なんでしょう。ですが、PHPのマニュアルを見てもこれ以上何をすればいいのか、分からないので今回はここらで作業を止めておきます。
〔参考サイト〕