こんにちは!
今日は表題の件を解説していきます。
ちょっと中途半端な部分もあるんですが、一応解決?というか
やりたいことはできているため備忘録としてソースを残しておきます。
以外とやりたい人おおいはず。
ワードプレスの記事には公開部分に「この投稿を先頭に固定表示」というチェックボックスがあります。
下記画像のようなやつ。
(バージョンが古いやつにはないです)

ここにチェックをいれてもデフォでは動きません。
さらにarchive.phpにもろもろ記載してもなんかうまくうごきません。
ということで、「この投稿を先頭に固定表示」を動かしつつ、固定部分の記事件数+固定じゃない記事件数の
合計でページネーションが動くように、実装してみました。
つまりはこういこうと
【全部で10件表示したい!】
固定記事が2件のときは、それ以外の記事が8件1ページに表示される。
固定記事が5件のときはそれ以外の記事が5件1ページに表示される。
早速ソースです!
そのままコピペして使えるはず。
私はarchive.phpで実装しました。
<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$list_count = 10; //全部で表示したい件数
$sticky = get_option( 'sticky_posts' );//固定の記事を表示する
if ( !empty( $sticky ) )$list_count -= count( $sticky );//固定の記事があった場合は全件数から固定の記事を引いてね
?>
<?php if (have_posts()) : ?>
<?php
if ( count($sticky) > 0 ):
$query = new WP_Query(array(
'post_type' => array('post'),//カスタム投稿だったらここにカスタム投稿名をいれてね
'post__in' => $sticky,
'order' => 'desc',//必要だったら記載
'orderby' => 'post_date',//必要だったら記載
'paged' => $paged,
));
?>
ここにループで回したい内容
<?php endif; ?>
<?php if ( $list_count > 0 ):
$query = new WP_Query(array(
'post_type' => array('post'),//カスタム投稿だったらここにカスタム投稿名をいれてね
'ignore_sticky_posts' => 1,
'post__not_in' => get_option( 'sticky_posts' ),
'order' => 'desc',//必要だったら記載
'orderby' => 'post_date',
'paged' => $paged,
'posts_per_page' => $list_count,
));?>
ここにループで回したい内容
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
<?php
/* --------------------------------------------------------------- */
/* WP_Queryを使用しているのでページナビに以下を使用 */
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'show_all' => true,
'type' => 'list',
'format' => '?paged=%#%',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $query->max_num_pages,
'prev_text' => '前へ',
'next_text' => '次へ',
) );
/* --------------------------------------------------------------- */
?>
<?php else : ?>
<div class="article">
<p>現在お知らせはありません。</p>
</div>
<?php endif; ?>
以上です。
ほとんどソース紹介みたいになっちゃったけど参考になると思います。
ぜひ!
ちなみに上記だと固定の記事を6件以上投稿するとおかしくなります。
中途半端ですみません!ご参考になれば幸いです。