【おさらい】静的htmlトップページにWordPressのお知らせを表示

WordPressのよくある使い方の1つで、トップページにお知らせを表示することがあります。ホームページ全体がWordPressになっていれば、それほど問題なく設定が出来るかと思います。

ところで、静的html(WordPressなどの更新プログラムで管理されていないもの)の場合、トップページにWordPressのお知らせを表示させることは出来るのでしょうか。

できます。

でも、ちょっとhtmlソースやその他のファイルをいじる必要があります。

WordPressで全体を構築することのほうが多いですが、既存のホームページを流用して、お知らせだけWordPressにしたいといったご要望もありますので、その対応方法についてメモしておきたいと思います。

※前回さくらサーバーでWordPressのインストールも行いましたので、あわせて見て頂くとインストール〜静的htmlトップページにお知らせを表示するまでがスムーズかもしれないです。

【さくらサーバー】サブドメイン+手動インストールでWordPressを使ってみよう!

Contents

今回のファイル構造

ファイル構造はこのようにしています。

index.html(静的html)
cmstest(WordPressインストール)
htaccess
php.cgi

htmlにPHPを読み込ませる

htmlの1番上に、この1文を追加してhtmlにWordPressを読み込ませる準備をします。

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

htaccessを設置する

index.htmlのお知らせにWordPressを表示させたいので、同階層に設置します。

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

パーミッションは、755 または 705 のいずれかを設定します。さくらサーバーのCGI設置に関するページも参考になります。

CGI・PHP・SSI について

php.cgiを設置する

さくらサーバーの場合、上記htaccessと同じ階層にこのファイルを置く必要があります。ファイル名は分かりやすくしていますが、phpという名前の部分は任意の名前でokです。ただ、その場合は先ほどのhtaccessの、「php.cgi」の「php」も変える必要があります。

#!/bin/sh
exec /usr/local/bin/php-cgi

phpのバージョンを変更したい場合は、サーバー側で設定変更の後、このようにすればバージョンを指定した設定が出来ます。今回は7.3を指定しました。

exec /usr/local/php/7.3/bin/php-cgi

パーミッションは、755 または 705 のいずれかを設定します。

index.htmlにお知らせを表示する

ここまできたら、あと一息です。今回のトップページ用データ(index.html)のお知らせを表示したい位置に下記を記述します。

<?php
$args = array( ‘posts_per_page’ => -1, );  表示記事数
$newslist = get_posts( $args );
foreach ( $newslist as $post ) :
  setup_postdata( $post ); ?>
    <p>
        <?php the_date(); ?>
        <a href="<?php the_permalink() ?>"><?php the_title(); ?></a> お知らせのタイトル
    </p>
<?php
endforeach;
wp_reset_postdata();
?>

これで、お知らせのリンク付きタイトルと投稿日が全件表示されますが、あまりトップページに全件表示することもないと思うので表示件数を調整します。

$args = array( ‘posts_per_page’ => 3, );  3件表示

※体裁はcssで整える必要があります。

今回のまとめ

最初にも書きましたが、全体をWordPress化することのほうが多いので、あまり使うこともないかもしれませんが、機会がありましたらぜひお試しください。

では、また!