web-dev-qa-db-ja.com

どのように家の中で複数のセクションを引っ張っている投稿カテゴリー賢明にするには?

この質問は誰にとっても初心者にとってはばかげて見えるかもしれませんが、私はテーマに取り組んでいます。それは基本的にニュース出版のテーマになります。

今、私のホームページでは、すべての投稿が通常のWordPressテーマのように次々と表示されています。

テーマに特別なコーディングは実装されていません。

しかし、私はホームページ上に異なるセクションを作り、それぞれのセクションにその名前を付けたいと思います。

カテゴリのタイトルとそのカテゴリからの投稿を取得して、そのセクションに表示します。

他のニュース関連のテーマと同様に、ホームページにブロックを作成し、「最新ニュース」、「今注目の」などの投稿を表示することで行います。

私が言っているという点をあなたが持っていることを願っています。

私はカスタム投稿タイプとwp_query投稿について読んだことがありますが、私はまさに私がこれに欲しいコードを持っていません。

任意の種類の助けは非常に高く評価されます

無料

1
Sadi Mahmud

あなたはすべてのあなたのカテゴリを通してforeachループを走らせることができますそしてそれから各カテゴリの最新の投稿のために質問を走らせること。これを行うには、ホームページを静的ページに設定してからカスタムテンプレートに追加します。これは基本的な例です。

$categories = get_the_categories();
    foreach ( $categories as $cat ) {

    $exclude = isset( $GLOBALS['current_id'] ) ? $GLOBALS['current_id'] : null;
    $args = array(
         'cat' => $cat->term_id,
         'posts_per_page' => 4,
         'post__not_in' => array( $exclude ),
         'no_found_rows' => true,
          );

     echo '<h3>'. $cat->name . '</h3>';
     $home_q = new WP_Query( $args );
     while ( $home_q->have_posts() ) : $home_q->the_post();
     $GLOBALS['current_id'] = get_the_ID();

     // Do loop stuff here......

     endwhile; wp_reset_postdata();

    }

$GLOBALS['current_id']は、複数のカテゴリに属している投稿が複数回表示されるのを防ぐために、各追加クエリで使用する投稿IDの配列を保持します。 'no_found_rows`をtrueに設定すると、ページ付けやもののための全ての投稿を取得しないことでクエリの負担を軽減します。

0
Chris_O