いやまあ、ちょびっと悩んでしまったが不覚。
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番最初の記事をトップページに表示して、のこりをアーカイブページでページ送りを利用して表示する、というのをやる。 もう一個副作用があるけど、今は見ないふり。