インストール階層の外でWordPress関数を適応したい時

/ WordPress / Comment[0]
既に静的HTMLが完成しているサイトにWordPressのブログ機能を付け加えたいという案件でちょっとこれから参考になりそうなのでメモ

ナビ・ヘッダー・サイドバー・フッターは共通なのでいっそのこと全てWordPressにしたいところですが、
金と手間が掛かるということで、index.htmlのカレントディレクトリにwpディレクトリを作成して
そこにwordpressをインストールしてちょこーっとブログを加えて欲しいとのこと。
style.css、single.php(ブログ記事)、index.php(ブログ一覧ページ)でブログのテーマを作るとして・・・

ここで重要なのはindex.htmlにもブログの更新情報を表示させたいという要求です。
つまりWordPressのインストール階層の外にあるindex.htmlにもWordPressの記事ループを適応させたいのです。

そんな時に便利なのがWordPress内にあるwp-load.phpファイル。
こいつをrequire_onceで読み込ませるとそのファイル内でもWordPressの関数が使えるようになります。
ただし、index.htmlをindex.phpに拡張子を変更する必要があるため、他の静的HTMLファイルのindex.htmlへのリンクを全て変更する必要がある場合もあります。

案件と似た最低限の環境を再現?してみました。
$ ls
 index.php wordpress/

wordpress/がWordPressのインストールディレクトリで
index.phpがWordPressの外にあるけど関数を適応させたいファイルです。
wordpress/wp-adminから通常ログインしてサンプル記事をいくつか作成しておきました。

index.php
<?php require_once('wordpress/wp-load.php'); ?> <!--wp-load.phpを1回実行-->
<html>
<body>
<h1>wp-load.phpのテスト</h1>

<?php query_posts( 'post_type=未分類&posts_per_page=3'); if(have_posts()) : ?> <!--未分類の記事を読み込み、表示を3記事に制限-->

<?php while( have_posts() ) : the_post(); ?>

<h2><?php the_title(); ?></h2>
<p><?php the_content(); ?></p>
<hr/>

<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

</body>
</html>

wp-load.phpさえ読み込んでおけばこんな風にWordPressの外でもWordPressの関数が使えるようになります。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可