いやまあ、ちょびっと悩んでしまったが不覚。
function my_pre_get_posts($query)
{
if (is_admin() || !$query->is_main_query()) {
return;
}
if ($query->is_category()) {
$pg = $query->get('paged') == '' ? 1 : $query->get('paged');
$pp = get_option('posts_per_page');
$offset = (($pg - 1) * $pp) + 1;
$query->set('offset', $offset);
return;
}
}
add_action('pre_get_posts', 'my_pre_get_posts');
ページ送りにoffset利用されてるって気がつければまあ対処はできるわけです。 これで1番最初の記事をトップページに表示して、のこりをアーカイブページでページ送りを利用して表示する、というのをやる。 もう一個副作用があるけど、今は見ないふり。