約2700の投稿があるとしましょう(2600の投稿が文字で始まり、100の投稿が数字で始まると仮定します。また、A、B、C、...のように100の投稿があります)。
タイトルの最初の文字に従って投稿を一覧表示するページを作成します。
www.website.com/post-lists-Numbers/
は、#
で始まる投稿のリストを示します。www.website.com/post-lists-A/
はA
で始まる投稿のリストを示します。www.website.com/post-lists-B/
はB
で始まる投稿のリストを示します。
.
.
.www.website.com/post-lists-Z/
はZ
で始まる投稿のリストを示します。
これに対する素早い解決策として、このプラグインを使用できることを知っています "アルファベットのページ付け"
しかし、私は何か新しいことを学び、基本をクリアしてカスタムコードを修正できるようにしたいです。
さらに、私はすべての投稿をページ付けして、 "letter"ページの各文字の50投稿に分割したいと思います。
このスレッドを読んだことがありますか? 与えられた文字で始まるすべての投稿を表示しますか?
これは WP_Query を使用して簡単に行うことはできませんし、それがページネーションを維持するのに役立つので残念です。
// Rules
$args = ['post_type'=>'post','orderby'=>'name'];
// The Query
$query1 = new WP_Query( $args );
// The Loop
while ( $query1->have_posts() ) {
$query1->the_post();
echo '<li>' . get_the_title() . '</li>';
}
あなたは wpdbを使うことができます
global $wpdb;
$results = $wpdb->get_results( "SELECT ID FROM wp_posts WHERE post_title LIKE 'B%';", ARRAY_A );
そしてWP_Queryを使う
// Rules
$args = ['post_type'=>'post','post__in'=>$results];
// The Query
$query1 = new WP_Query( $args );
// The Loop
while ( $query1->have_posts() ) {
$query1->the_post();
echo '<li>' . get_the_title() . '</li>';
}
pre_get_posts()
はこの種のことをするときに使うべきもう一つの良いものです。