WordPressを導入したがWPではないページ(.php)にWPタグや新着一覧を表示

WordPressで新着情報等をCMS化したサイトを作ったけど、DreamWeaverで編集したいなど更新する手間を省くため通常のページ(更新頻度が高くない)は静的なページで作ることはよくある。というかそのほうがメンテナンス性はむしろ高いと思う。
作ったことある方なら分かると思いますが、通常のページもWPページで全ページCMS化してしまうと、メンテナンス性は著しく低下するし、リクス(レイアウトが崩れちゃった、その他もろもろ・・・)も伴うことになる。結果=無駄なリソース発生→早く帰れない・・・となる。

でも通常のページでもWPのタグや機能は使いたい場合がある。
特に最近の投稿一覧や投稿そのものを表示させたいなど。
投稿一覧はRSSで取得する方法もあるけど手っ取り早いのが
静的ファイル(ただし拡張子はphpである必要がある。またはhtmlをphpとして動作させる必要あり)でWPの機能を追加することかと。(もちろんWordpressは導入している必要がある)

方法いたって簡単。ファイルのソースの一番上(DOC宣言より上)に以下の1行のコードを貼り付けるだけ。これはWPのトップのindex.phpに書かれているコードそのまま。
以下のパス部分はあくまで自分の場合のパスです。そのファイルからwp-blog-header.phpへの相対パスを書く必要があります。


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

あとは自由にWPのタグなどが使えます。

以下を書けば新着一覧を表示させることが可能。
※カテゴリ番号はあくまでサンプル。


<?php
$posts = get_posts('numberposts=50&category=3');//カテゴリと表示件数指定
global $post;
if($posts): foreach($posts as $post): setup_postdata($post); ?>
<dl>
<dt><?php the_time(__('Y/n/j')) ?></dt>
<dd><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></dd>
</dl>
<?php endforeach; endif;?>

numberposts=50
これは投稿の表示数。0や-1で無制限。

category=3
これはカテゴリのID番号。
※調べ方は管理画面→カテゴリ→カテゴリのタイトルクリック→URLのID=○○部分

<?php the_time(__('Y/n/j')) ?>

これは投稿日。
Y/n/jは任意。この場合2012/12/3 のように表示される。
Y年n月j日とすれば2012年12月3日と表示される。
年を2桁で表示したい場合はYを小文字で書けば2桁になる。
2013→13
月、日は試したことがないけど、おそらく大文字、小文字で調整可能かと。

記事の内容が近いもの:

  1. WordPress 指定したURLに直接リンクさせたい
  2. WordPress特定のカテゴリ時のみ表示させたい
  3. WordPressプラグイン アクセス解析
  4. WordPress(XOOPSモジュール)IE8での記事入力不具合解消(暫定処置)
  5. WordPressプラグイン ソースコードを表示させたいとき
  6. WordPressページごとに特定カテゴリの表示、非表示
  7. PHPのバージョンアップでAdvanced Category Excluderの不具合解決
  8. WordPress3.2.1へバージョンアップ時のIEで投稿入力中に文字が消える件
  9. WordPressの「WordPress○○○が利用可能です ! 更新してください。」を表示させない(非表示処理)

カテゴリー: WordPressのメモ書き   パーマリンク

コメントは受け付けていません。