昨日はWordPress弄ってただけで一日が終わったでござる。
記事一覧ページを作りたかった。
「そういやあんなこと書いたような気がしたけど、いつの記事だったっけ」って思うことがよくあって、それが数ヶ月前の記事とかだと探すのがめんどうくさくて。ブログ内検索で見つかるとも限らないし。
で、とりあえず「最近の記事一覧」ってページを作った。
最近の記事一覧ページは、こちらのサイト様を参考に作成。(URL変更に伴いhttp://studio-freetown.com/skill/wp/1682/ ←この記述だと自分の環境で動かない? http://alphasis.info/2011/07/wordpress-function-get_posts-category-ids/ こっちだと動く)
「Exec-PHP」というプラグインを入れて、投稿記事内でPHPを使えるように。自分は固定ページで作成。
確かにシンプルで見やすいんだけど、記事表示数に限界があるというか。
いや、「numberposts」のところを「-1」にしたら全記事取得できるんだけどさ。
でも出来れば、一回の表示数は数十とかにして、「次へ」ってページ送りできるようにしたかった。
その方法が無いものかと色々調べたんだけど、どうも見つからなかった。
数時間悩みに悩んだ結果、行き着いたのは「サイトマップ」を作ろうというもので。
Google先生のSEO対策用にサイトマップは既に付くってあったけど、それは検索ロボット用のxmlであって、記事タイトルとか表示されないし、自分ないしビジターにとってはとてもじゃないけど見れたもんじゃない。
だから、ビジター用という名の自分用サイトマップページを作成して、「最近の記事一覧」ページでは無理な部分を補うことにした。
最近の数十件は「最近の~~」で確認して、更にそれ以前はサイトマップでズラーーっと並んでいるのを確認してって感じで。
本当は月別アーカイブページを上手い具合に改編したかったんだけど、良いアイデアがなかった。
自分用サイトマップの作成にあたって使ったプラグインは「PS Auto Sitemap」。
参考サイト様はこちら。
導入は簡単で、プラグイン入れたあとにサイトマップ用の記事を作って、そこのソースに「<!-- SITEMAP CONTENT REPLACE POINT -->」って記述するだけ。
あとはプラグインの設定ページでいろいろできる。デザインもいくつか選べる。
同一ページ上に全記事出力も出来るし、投稿を分割して別ページに表示できたりもするし。
これでようやく満足した。
探したい記事があったら、「ブログ内検索or最近の記事一覧orサイトマップ」って手法の幅が拡がった。
WordPressはほんと便利なんだけど、いかんせん時間泥棒で困る。
____以下メモ____
<?php
global $post;
$tmp_post = $post;
$category_ids = array( ‘1’,’12’,’9′,’17’,’10’ );
$numberposts = ’50’;
foreach ( $category_ids as $category_id ) {
?>
<h2><?php echo get_cat_name( $category_id ); ?></h2>
<ul>
<?php
$postslist = get_posts( “category=$category_id&numberposts=$numberposts&order=DESC&orderby=date” );
foreach ( $postslist as $post ) {
?>
<li><a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li>
<?php
}
?>
</ul>
<?php
}
$post = $tmp_post;
?>
