【WordPress】関数や投稿情報をディレクトリ外で使用する

こんにちは、ryohei(@ityryohei)です!

本記事では、WordPressの関数や投稿情報をインストールディレクトリの外にある外部ファイルで使用する方法をご紹介しています。

WordPressの関数や投稿情報をディレクトリの外にある外部ファイルでも使用したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

wp-load.phpを読み込むだけでOK

WordPressをインストールすると、インストールディレクトリの配下にwp-load.phpというファイルが設置されます。wp-load.phpを読み込みことで、設定ファイルや関数群のファイルが読み込まれて投稿やWordPressの関数が使用できるようになります。必要な準備はこれだけです。もっと複雑な手順を踏む必要があるのかと思ったのですが、さすがは長年多くのユーザーに愛され続けているCMSですね。

WordPressの外部から関数を使用する

実際にWordPressのインストールディレクトリの外からwp-load.phpを読み込んで関数を使ってみます。

ディレクトリ構成は下記のようなイメージです。DocumentRoot直下のtest.phpwp-load.phpを読み込み、WordPress関数のhome_url()echoしてみます。

DocumentRoot/
  ├ wp/
  │  ├ wp-admin/
  │  ├ wp-content/
  │  ├ wp-includes/
  │  ├ wp-load.php
  │  └...
  └ test.php

test.php

<?php

require __DIR__.'/wp/wp-load.php';

echo home_url();

実行結果

https://into-the-program.com

実行結果を確認すると、home_url()が動作し、当サイトのURLが出力されています。これでいつでも外部ファイルからWordPressの関数を呼び出すことができます。

WordPressの外部から投稿情報を取得する

関数の呼び出しはできたので、次は投稿情報を取得してみます。テンプレートではないのでメインループは確実に動かないため、サブループを使って投稿情報を取得してみます。パラメータには投稿タイプ(post)と取得する件数(5件)を指定しています。(ディレクトリ構造は前項と同じです。)

test.php

<?php

require __DIR__.'/cms/wp-load.php';

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 5
);
$the_query = new WP_Query($args);

if($the_query->have_posts()):
    while($the_query->have_posts()):
        $the_query->the_post();
        echo get_the_title().'<br>';
    endwhile;
endif;
wp_reset_postdata();

実行結果

【WordPress】同じタクソノミー・ターム内の前へ・次へのリンクを表示する
【PHP】日付(年月日)から曜日を取得する【DateTime】
【JavaScript】textContentの文字列を数値に変換して演算に使用する
【JavaScript】img要素がalt属性を持っていない場合に自動追加する
【WordPress】公開済みの投稿の件数を取得する

実行結果を確認すると、本サイトで投稿している最新の投稿5件のタイトルが出力されました。きちんと動作しています。サブループが動作すれば好きなように投稿を表示することができるので、本記事の目標は達成できていますね。

最後に

WordPressの関数や投稿を外部から取り扱うには複雑な手順が必要に思えましたが、実際にやってみるとwp-load.phpを読み込むだけで済みました。長年運用されてきた実績のあるCMSなので、多くのエンジニアの方がユーザーが使いやすいように改良を重ねてきたんだろうな、と考えると感無量です。今後もありがたく使わせていただきます。

以上、WordPressの関数や投稿情報をディレクトリ外で使用する方法のご紹介でした!

Adobe Creative Cloudのコンプリートプランを特別価格で手に入れよう!

Adobe Creative Cloud(Adobe CC)はAdobe社が提供するクリエイター向けのサービスです。WEB制作の幅を広げる「Photoshop・Illustrator・XD」Youtuberや動画クリエイターの編集作業に欠かせない「Premiere Pro・After Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。

コンプリートプランはAdobe CCの全20以上のアプリが使用できるプランです。多くのアプリが使用できるため定価で購入すると年間7万円以上するプランですが、デジタルハリウッドのAdobeマスター講座では「基礎動画教材+Adobe CC コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。定価より安価にAdobe Creative Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。

Adobeマスター講座はこちら

おすすめの書籍