まあ、私は質問が少し混乱するかもしれないと思います。しかし、最初の5つの最近の投稿を無視して、最近の4つの投稿を取得したいのです。つまり、6、7、8、9番目の最近の投稿です。
簡単です。
WordPressは get_posts()
という名前の関数を提供しています。基本的に、get_posts()
はデフォルトで最新の5つの投稿を取得します。
4つの投稿を取得するには、最新の5つを無視して、numberposts
およびoffset
パラメータを設定します - offset
は、スキップする投稿数を関数に指示します。
$args = array(
'numberposts' => 4,
'offset' => 5,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish'
);
$posts = get_posts( $args );
これで、日付順に並べられた4つの最新の投稿(最新の5つを無視)の配列ができました。
あなたはoffsetパラメータを使うことができます - 'main loop'のためにpre_get_posts
フック( この記事を見てください ):
add_action('pre_get_posts','wpse50761_alter_query');
function wpse50761_alter_query($query){
if( $query->is_main_query() ){
//Do something to main query
$query->set('offset',5);
}
}
またはその後の二次ループの場合:
//Using get_posts
$my_offset_posts = get_posts(array('offset'=>5));
//Using WP_Query object
$my_offset_query = new WP_Query( array('offset'=> 5) );
(もちろん、他の引数を引数配列に含めることができます)