WordPress

静的ファイル(HTML,PHP)からwpタグを実行する

仕事でタイトル通りのことをする必要があったのでメモエントリ。
こりゃ便利だ。

過去に設置したサイト(静的HTMLで作成)に後日WordPressを追加して、いわゆる「What’s New」的なものをつけはじめたんですが、それをトップページに配信したいって案件だったんです。
新しく作るサイトなら全部WordPressで構築してしまえばいいんですが、後からとなるとそのためにトップページを作りなおすのも面倒・・・ということでこんなTipsを。

index.htmlにこの1行を追加するだけで、wpタグ(テンプレートタグ)を使うことが出来るようになります。

<?php require './wp/wp-blog-header.php'; ?>

そうしておいて、こんな感じでタグを書けばカテゴリの最新記事X個を並べることができますね。
<ul class="categoryList">
<?php $posts = get_posts('numberposts=10&category=1');
foreach($posts as $post) :
setup_postdata($post); ?>
<li><a href="<?php the_permalink() ?>"><span class="date"><?php the_time(__('Y年 Md日')) ?></span>  <?php
if(mb_strlen($post->post_title,'UTF-8')>30) {
$title= mb_substr($post->post_title,0,30,'UTF-8');
echo $title.…;} else {
echo $post->post_title;}
?></a></li>
<?php endforeach; ?>
</ul>

2行目の「category=1」がカテゴリ指定、7,8行目の「30」ってのはタイトルの文字数制限です。

でも、これを追加するってことは、HTMLじゃなくなってPHPになるんですよね。
単純に「index.php」に変更してもいいですが、どうしても拡張子は.htmlにしたいという場合があると思います。
そんな時は「.htaccess」を設置して下記を追加します。
AddType application/x-httpd-php .htm .html

これでめでたく解決。
良かった良かった。

コメントを残す