wordpress外のphpからwordpress関数を呼びたい場合

Author:
wordpresslogo

例として自分のWebスペース内に
webapp/index.php
wordpress/*
とある場合、webapp/index.phpからwordpressの関数を呼びたい場合があるかもしれません。
こういう場合は、WP_USE_THEMESというdefineをfalseで定義してwp-blog-header.phpをインクルードすれば呼び出すことができるのです。

例えばこんな感じ。

<?php
define('WP_USE_THEMES', false);
require('./wordpress/wp-blog-header.php');

echo get_bloginfo('version');
?>

こうすればwordpressの関数を他のphpファイルから呼び出すことができるのです。
get_bloginfoはwordpressの情報を呼び出す関数。
なので、実行すると

[tea@astrominit public_html]$ php index.php
4.1.1

こうなります。
これ何気に便利なのが、functions.phpとかに手を加えたりプラグインを作らなくてもお試しで動かせたりする。
当然なのか驚きなのか、$wpdbを使えばSQLも実行できてしまいます。
こんな感じに。

<?php
define('WP_USE_THEMES', false);
require('./wordpress/wp-blog-header.php');

global $wpdb;
$result = $wpdb->get_results("SELECT * FROM wp_posts where post_status = 'publish' and post_type = 'post'");
echo $result[0]->post_content;
echo "\n";

?>

[tea@astrominit public_html]$ php index.php
WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !

MySQLのパスワードもwordpressのパスワードも必要ない。
強烈ですねえ。
もちろんこんな事他のサイトに対してできたら大変なので自分のドメイン内でしか使えません。
クロスドメイン制約があるのですね。

上手く使えば非常に便利になりそうな機能なのでwordpress使いのエンジニアは覚えておきましょう。

Share on Facebook
Pocket