技術情報

WordPressの投稿記事をWP管理外のファイルで利用する簡単な方法

2016.07.08


WordPressで管理している投稿記事やページ情報を、まったく別のデザインやフォーマットで表示したい場合、いちいちテンプレート化して、テーマフォルダに入れて、管理画面からページを作成して、といろいろ面倒ですよね。

WordPressで管理していないhtmlページ内で投稿記事を表示

外部のファイルからWordPress内で管理しているデータにアクセスするのは、実はとても簡単です。一行おまじないを入れるだけです。
例えば wp-config.phpと同じ階層のディレクトリ内で、test.phpというファイルを作成して、下記コードを入れます。


<?php  require_once ('wp-load.php'); ?>

※ 上記はwp-load.phpが存在するディレクトリと同じ場所にある場合になります。ページの階層を変える場合には適宜 require_once('../wp-load.php'); 等と指定パスを変える必要があります。

これで、自由にWordPress内のデータがアクセスできるようになります。

あとは最新の投稿を3つul, liのリストタグで表示したい場合には、下記のようなコードになります。

<?php
// 記事検索クエリ posts_per_page=3 で最新3記事
$the_query = new WP_Query('posts_per_page=3');
if ( $the_query->have_posts() ) {
    echo '<ul>';
    // 記事のリスト表示
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
    }
    echo '</ul>';
} else {
    // 記事がなにもない時に何か表示したい場合はここ
}
/* リセット */
wp_reset_postdata();

拡張子.htmlのファイルで利用する場合

.phpという拡張子のファイルで作成した場合、とくになにも設定しなくても表示できますが、 .htmlや .xml等のような拡張子で表示したい場合、一か所設定が
必要になります。

.htaccess内に

AddType application/x-httpd-php  .html

という一文を入れます。これで、Wordpressから管理していない.htmlファイルで投稿記事が表示できるようになります。