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設置に関するページも参考になります。
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化することのほうが多いので、あまり使うこともないかもしれませんが、機会がありましたらぜひお試しください。
では、また!