私のクライアントは、ホームページに彼の最新の5つの投稿(抜粋)を表示し、続いて「もっと読む」リンクを表示します。アーカイブページで、彼は再び最新の5つの投稿を表示したくないが#6から#20までの投稿。
これどうやってするの?
クエリにoffsetを追加し、値を5にすると、最初の5はスキップされます。
以下は同じコードスニペットです
$custom_args = array('post_type' => 'your custom post type name',
'posts_per_page' => '20',
'orderby' => 'id',
'offset'=>5,
'order' => 'ASC',);
$custom_query = get_posts($custom_args);
foreach ($custom_query as $value) {
//your data
}
元のアーカイブクエリをフィルタリングできます。
function my_archive_query( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
$query->set( 'offset', 5 );
$query->set( 'posts_per_page', 20 );
}
}
add_action( 'pre_get_posts', 'my_archive_query' );
より詳しい情報: