ホームページ  >  記事  >  ウェブフロントエンド  >  カテゴリごとに最新の投稿を表示

カテゴリごとに最新の投稿を表示

WBOY
WBOYオリジナル
2023-08-31 11:29:05765ブラウズ

デフォルトでは、メインの WordPress ブログ ページには、最新の投稿が日付の降順で表示されます。ただし、サイトでカテゴリを使用しており、読者が各カテゴリの新しいコンテンツを見たいと考えている場合は、ブログ ページの見た目を変える必要があるかもしれません。

このチュートリアルでは、これを行う方法を説明します。その方法を説明します:

  • ブログ上のすべてのカテゴリを特定する
  • 投稿ごとに最新の投稿を表示するか、投稿に注目の画像がある場合はそれを表示します
  • 複数のカテゴリの投稿が重複していないことを確認してください
  • スタイルを追加して見栄えを良くします
###あなたは何が必要ですか###

このチュートリアルに従うには、次のものが必要です:

WordPress の開発インストール。
  • いくつかの投稿とカテゴリが設定されました。 WordPress テーマの単体テスト データのデータ例を使用しました。
  • ###テーマ。 「Twenty Four」トピックのサブトピックを作成させていただきます。
  • コードエディタ。
  • テーマの設定
最初のステップはテーマを設定することです。

style.css

index.php という 2 つのファイルだけを使用して、Twenty-F​​our テーマの子テーマを作成します。 これは私のスタイルシートです: リーリー

後でこのファイルに戻ってスタイルを追加しますが、今のところ WordPress が子テーマを認識する必要があるだけです。

インデックスファイルの作成

メインのブログ ページに各カテゴリの最新の投稿を表示したいので、子テーマに新しい

index.php

ファイルを作成します。

空のindex.phpファイルを作成します

まず、24 から

index.php

ファイルをコピーし、ループなどを編集して次のようにします。

リーリー 識別カテゴリ

最初のステップは、ブログ内のカテゴリを決定することです。次に、

タグを開き、次のコンテンツを追加します: リーリー <div id="content">これは、get_categories() 関数を使用して、ブログ内のカテゴリのリストを取得します。デフォルトでは、これはアルファベット順に取得され、空のカテゴリは含まれません。これは私にとってはうまくいくので、追加のパラメーターは追加しません。 <p> <code class="inline">次に、 foreach ( $categories as $category ) {}

を使用して、各カテゴリを順番に実行し、中括弧内のコードを実行するように WordPress に指示します。次のステップでは、各カテゴリに対して実行されるクエリを作成します。

クエリパラメータを定義する

次に、クエリのパラメータを定義する必要があります。次の行を中括弧内に追加します:

リーリー

これにより、現在のカテゴリの投稿は 1 つだけ取得されます。

クエリを実行

次に、

WP_Query

クラスを使用してクエリを挿入します。

リーリー これにより、各記事の注目の画像、タイトル、抜粋が出力され、それぞれがリンクに含まれます。

今度はどのようになるか見てみましょう:

ご覧のとおり、問題があります。マイページには各カテゴリの最新の投稿が表示されますが、1 つの投稿が複数のカテゴリの最新の投稿になる場合があるため、重複した投稿となります。この問題を解決しましょう。 カテゴリごとに最新の投稿を表示

重複投稿を避ける

get_categories()

関数を追加する行の上に、次の行を追加します。 リーリー

これにより、$do_not_duplicate という空の配列が作成されます。これを使用して各投稿出力の ID を保存し、後でクエリされる投稿の ID がその配列内にあるかどうかを確認します。

次に、クエリ オプションの下に新しい行を追加します。最初の 2 行は次のようになります。 リーリー これにより、現在の投稿の ID が

$do_not_duplicate

配列に追加されます。

最後に、新しいパラメーターをクエリ パラメーターに追加して、この配列内の投稿が出力されないようにします。あなたの引数は次のようになります: リーリー これは、

'post__not_in'

パラメーターを使用して投稿 ID 配列を検索します。

index.php ファイルを保存し、ブログ ページを再度表示します:

############これの方が良い!これで、あなたの投稿は重複しなくなりました。

スタイルを追加

カテゴリごとに最新の投稿を表示現在、コンテンツは少し広がっており、注目の画像が投稿のタイトルと抜粋の上に表示されます。スタイルを追加して、画像を左に寄せてみましょう。

テーマの

style.css

ファイルに次の内容を追加します:

リーリー

コンテンツがページに適合し、レイアウトが改善されました:

このテクノロジーをさまざまなコンテンツ タイプに適応させる

この手法を応用して、さまざまなコンテンツ タイプや分類を処理できます。例えば:###
  • カテゴリの代わりにカスタム分類用語を使用したい場合は、get_categories()get_terms() に置き換え、'cat' クエリを変更します。分類用語を検索するためのパラメータ。
  • 別の投稿タイプを使用している場合は、同様のコードをテンプレート ファイルに追加して、その投稿タイプを表示できます。 'post_type' => 'post' パラメータをクエリ パラメータに置き換えます。タイプ。
  • メイン ブログ ページ内に別のページを作成して、特定のカテゴリの投稿タイプの最新の投稿を表示する場合は、カテゴリ アーカイブ テンプレートを作成し、このコードの適応バージョンをそれに追加できます。 李>
  • さらに一歩進んで、ネストされた foreach ステートメントを使用して複数のループを実行することで、複数の分類法または複数の投稿タイプでこの手法を使用できます。
  • 上記のコードを single.php ページに追加すると、投稿コンテンツの後に各カテゴリの最新の投稿へのリンクが表示されます。これを行う場合は、現在表示されているページの ID を $do_not_duplicate 配列に追加する必要があります。
###まとめ###

ブログの最新の投稿を別の方法 (単に時系列順ではなく) で表示すると便利な場合があります。ここでは、ブログ上の各カテゴリの最新の投稿を表示し、複数のカテゴリで投稿が重複しないようにする手法を示します。

以上がカテゴリごとに最新の投稿を表示の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JavaScript でリンクの href 属性の値を検索するにはどうすればよいですか?次の記事:JavaScript でリンクの href 属性の値を検索するにはどうすればよいですか?

関連記事

続きを見る