どうでもいい雑記その790
- Category: WordPress関係
謎講座を制作中。暑いのもあって今一作業が捗らない。それに伴って、サイト自体のテーマも若干更新。まぁ、見た目は変わらないんだけど。
講座の各ページは「投稿」を使おうと思っている。ただ、それだと講座を更新するたびにトップページに記事が出てきて鬱陶しい。そこで、
- Webサイト制作講座以外のカテゴリーの記事のうち、最新1件を取得
- 1で取得した記事の年月日、および制作講座カテゴリの除外の2点を$query_stringに追加
- あとはWordPressループで記事を表示
ってな具合にindex.phpを書き換えた。こうすることで特定カテゴリを除外した、最新一日分の記事を取得出来る。
ただ、あまり効率的なやり方とは思えない *1。カテゴリ増やすたびにテーマを更新しないといけないし。PHPにすると下記の通り。
<?php
$posts = get_posts('numberposts=1&category=Web制作講座以外のカテゴリIDをカンマ区切りで羅列');
$recent_date = date('Ymd',strtotime($posts[0]->post_date));
global $wp_query;
query_posts(
array_merge(
array('cat' => -Web制作講座のカテゴリID *2, 'year'=> substr($recent_date,0,4) , 'monthnum'=>substr($recent_date,4,2) , 'day'=> substr($recent_date,6,2)),
$wp_query->query
)
);
?>
さらに下記サイトの記述に倣ってFeedから制作講座カテゴリの記事を除外。
下記をfunctions.phpに追加すれば終了。
function myFilter($query) {
if ($query->is_feed) {
$query->set('cat','-Web制作講座のカテゴリID *2');
}
return $query;
}
add_filter('pre_get_posts','myFilter');
サイトのテーマの修正はそんな感じで終了したので、講座の方の作業を続行中。今年中に完成出来ればいいなー、とか。