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
月、日は試したことがないけど、おそらく大文字、小文字で調整可能かと。
記事の内容が近いもの:
- WordPress 指定したURLに直接リンクさせたい
- WordPress特定のカテゴリ時のみ表示させたい
- WordPressプラグイン アクセス解析
- WordPress(XOOPSモジュール)IE8での記事入力不具合解消(暫定処置)
- WordPressプラグイン ソースコードを表示させたいとき
- WordPressページごとに特定カテゴリの表示、非表示
- PHPのバージョンアップでAdvanced Category Excluderの不具合解決
- WordPress3.2.1へバージョンアップ時のIEで投稿入力中に文字が消える件
- WordPressの「WordPress○○○が利用可能です ! 更新してください。」を表示させない(非表示処理)