ワードプレスで独自設置した孤立したPHPプログラムからワードプレスの関数を使用する方法を解説いたします。

ワードプレス外からワードプレスの関数を利用する

下記のようなプログラムを独自に設置した場合、get_postsという関数がないというエラーが出ます。
※有効にしたテーマやプラグインにインクルードされている場合はエラーは出ません

これは、ワードプレスから孤立したPHPプログラムは、ワードプレスの関数を使用できる環境下にないからとなります。

<?php
$args = array(
    'numberposts' => 20,
    'category' => 4
);
$my_posts = get_posts( $args );

if( ! empty( $my_posts ) ){
    $output = '<ul>';
    foreach ( $my_posts as $p ){
        $output .= '<li><a href="' . get_permalink( $p->ID ) . '">' . $p->post_title . '</a></li>';
    }
    $output .= '</ul>';
}

独自設置した孤立したPHPプログラムからワードプレスの関数を使用する方法

このファイルに下記の2行を追加することでワードプレスの関数を使用することができるようになります。

define( 'WP_USE_THEMES', false );//追加
require('ファイルまでのパス/wp-blog-header.php');//追加

<?php
$args = array(
    'numberposts' => 20,
    'category' => 4
);
$my_posts = get_posts( $args );

if( ! empty( $my_posts ) ){......

current_user_can(‘administrator’) や __(等の翻訳関数も使用できるようになります。

wp-blog-header.phpとは?

wp-blog-header.phpはワードプレスのindex.phpでも読み込まれている、ワードプレスの機能を全部読み込んでサイトを様々な関数を通して表示するためのファイルです。

このファイルを外部から読み込むことによって独自のPHPプログラムからもワードプレスの関数を使用できるようになります。

define( ‘WP_USE_THEMES’, false );はワードプレスの関数は使用するがテーマに実装されている関連の関数はを読み込まないという意味になります。
テーマに実装されている関数を利用しない場合は、この記載を追加すると処理が速くなります。

ご参考になりましたら幸いです。

WordPress ワードプレスサイトの修正・カスタマイズ、PHPコーディングのご依頼ご相談はWPドクターまでお気軽にお送りください