[WordPress]静的なhtmlのページに同じサーバー内のWPの更新情報を表示させる方法
最終更新日:2021.10.01 [金] 公開日:2018.01.07 [日] カテゴリー:WordPress 備忘
ページ全体はhtmlで作られていますが、ある一部分だけ、お知らせとか新着とか、そういうのだけWordPressで作りたいというのは、最近とてもよくある要望です。
いくらか方法はあると思うのですが、今回は一番私がよく使っている単純な方法をまとめました

前提としてフォルダ構成はこういう感じ↑です。
ルートにトップページとなるindex.htmlがあり、ルートのディレクトリにblogというフォルダがあり、その中がWordPress関連一式という感じ。
つまりWordPress本体にアクセスするとしたら、
http://www.hogehoge.com/blog/
みたいな感じですね。
この状況で、index.htmlにWordPressの新着情報を表示させる方法です
Contents
手順1:html上でphpを動かす必要があるのでその前準備@htaccess
これはサーバーやphpのバージョンなどによって、かなり書く内容は異なりますので、
それぞれのサーバーの情報から調べていただけたらと思うのですが、
.htaccessに
1 |
AddType application/x-httpd-php .php .html |
1 |
AddHandler application/x-httpd-php .php .html |
上記どちらかの一文を書くことで動くことが多いです。
手順2:新着を表示させたいindex.htmlでWordPressの関数を使えるようにする宣言
新着を書き出すということはWordPressの関数をhtml上で使えないとできないので、index.htmlで使えるように指示をします。
一行目に
1 |
<?php require_once( dirname( __FILE__ ) . “/blog/wp-load.php”); ?> |
という一文を追加して読み込めばオッケーです。
手順3:トップページなどのhtmlファイルにWPの新着情報として投稿内容を全部掲載させる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php require_once( dirname( __FILE__ ) . “/blog/wp-load.php”); ?>/*1行目に記載*/ <dl> <?php $args = array( 'post_type' => 'post',//どの投稿タイプを表示させるのか 'showposts' => 5// 新着を幾つ表示させるのか ); ?> <?php $query = new WP_Query( $args ); ?> <?php if( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <dt><?php the_time('Y.m.d'); ?></dt> <dd> <strong><?php the_title(); ?></strong> <?php the_content(); ?><!--全文表示--> </dd> <?php endwhile; wp_reset_postdata(); ?> <?php else : ?> 記事がありません <?php endif; ?> </dl> |
手順4:トップページなどのhtmlファイルにWPの投稿タイプで表示の方法を振り分ける時
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<dl> <?php $args = array( 'post_type' => array('column','post'),//カスタム投稿タイプcolumnと、投稿の両方を読み込む 'showposts' => 5// 新着を幾つ表示させるのか ); ?> <?php $query = new WP_Query( $args ); ?> <?php if( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <?php if(get_post_type()=='column' ): ?><!--カスタム投稿タイプcolumnの場合--> <dt><?php the_time('Y.m.d'); ?></dt> <dd> <strong><?php the_title(); ?></strong> <?php the_content(); ?><!--全文表示--> </dd> <?php else: ?><!--カスタム投稿タイプcolumnではない場合の全て--> <dt><?php the_time('Y.m.d'); ?></dt> <dd><a href="<?php the_permalink() ?>"><?php the_title(); ?></a><!--タイトルから個別ページへリンク--> </dd> <?php endif; ?> <?php endwhile; endif; wp_reset_query(); ?> </dl> |
*サブループの書き方に変えました!!
コメントを残す