ホームページ >バックエンド開発 >PHPチュートリアル >WP_Query をマスターする: ループの力を活用する
このシリーズの導入部分で説明したように、WP_Query
クラスには 4 つの主要な要素があります。
WP_Query でループを使用する方法を説明します。これには、ループを構築する 2 つの主な方法と複数のループの使用方法が含まれます。
したがって、3 つのラベルを使用するループがクエリの後に表示されます。
post_count
属性の値が current_post 1
の値より小さいかどうかをチェックすることによって行われます。
have_posts()
メソッドは、投稿があるかどうかを確認するために以前に呼び出したメソッドと同じです。このメソッドではポスト カウンタがインクリメントされないことに注意してください。ループ内に投稿があるかどうか、またはループの終わりにいるかどうかを知らせるだけです。また、ループが最後に達すると自動的に巻き戻します。
メソッドは、ループ内では呼び出さないでください。これは、have_posts()
がループを最初に巻き戻してしまい、無限ループになってしまうためです。
これが
クラス内のループの場所です:
リーリー
ループを実行した後は、
を使用して整理するだけです。
ループ構造
このループは、上で説明したもの、つまり注目の画像、タイトル、抜粋を正確に表示します。
さらにループ: 内容を確認します
この問題は、囲んでいる要素またはタイトルを
if タグに入れることで簡単に解決できます。
リーリー
ここでは、クエリが投稿を取得したかどうかを確認し、取得した場合は、それを含む要素を開いてタイトルを追加したことがわかります。
これは、クエリ結果をリストとして出力する場合にも便利です。特定のカテゴリ内のすべての投稿のリストを作成したいとします。
ul 要素は特定の投稿に関連していないためループ内にありませんが、投稿がある場合にのみ出力したいと考えています。そこで私はこれを使います:
リーリー
これは、クエリが投稿を取得したかどうかをチェックし、取得した場合は、
要素を開いてループを実行します。
追加のループを実行する
を使用して複数のループを実行できますが、これを行うにはポスト データをリセットし、WP_Query
の 2 番目のインスタンスを開始する必要があることに注意することが重要です。これは、各ループが異なるパラメーターに基づいてデータを出力するためです。
この例では、最初の記事の抜粋と注目の画像を示し、その後、後続の各記事のタイトルのみを示します:
ここでは 2 つの重要なパラメータを使用しました:
2 番目のクエリで使用される
要素を開き、各投稿のタイトルを li
リンクで囲みます。要素とそのページにアクセスします。 <p> 両方のループの後に <code class="inline">wp_reset_postdata()
を使用していることにも気づくでしょう。これを行わなかった場合、2 次ループの外側で template タグを使用すると、ループ内の最後の投稿に関するデータが得られます。この関数を呼び出すと、パブリケーション データがメイン クエリにリセットされます。
ループ内で多数の関数を呼び出して、現在の投稿に関する情報にアクセスできます。このチュートリアルで使用されているものもいくつか見てきました。このセクションでは、時々使用する可能性のあるいくつかの一般的な機能のリストを示します。
投稿のタイトルを取得するには、3 つの関数を使用できます。それらは、the_title()
、get_the_title()
、および the_title_attribute()
です。 get_the_title()
関数は単に投稿のタイトルを取得するだけですが、the_title()
は渡された引数に基づいてオプションのタグとともにタイトルを表示または取得します。タイトルを表示する前にクリーンアップしたい場合は、 the_title_attribute()
を使用する必要があります。
現在の投稿の抜粋を表示するための the_excerpt()
という専用関数があります。提供された抜粋に複数のフィルターを適用して、視聴者に正しく表示できるようにします。すべての記事に著者による抜粋が含まれるわけではありません。この場合、表示する前に、完全な投稿の抜粋の要約バージョンが生成されます。
関数 the_content()
を使用すると、投稿の完全なコンテンツを表示できます。
WordPress の投稿には通常、割り当てたタグまたはカテゴリがいくつかあります。 the_tags()
関数と the_category()
関数を使用すると、ループ内でこれらのタグとカテゴリのリストを表示できます。 the_author()
関数を使用して、投稿の作成者を表示します。投稿の ID には、関数 the_ID()
を介してアクセスすることもできます。
WordPress には、ループ内で使用して投稿の日付 (the_date()
) と時刻 (the_time()
) を表示できる専用の関数があります。覚えておくべき 2 つの重要な点は、the_time()
を使用して投稿が公開された日付のみを表示することもできるということです。さらに、the_date()
の出力は、同じ日に公開された複数の投稿に対して 1 回だけエコーされます。これは基本的に、柔軟性と使いやすさを高めるために、ほとんどの場合 the_time()
を使用する必要があることを意味します。
は実際にはあまり役に立ちません。このループは、WordPress がクエリパラメータに基づいてデータベースから取得したデータを表示するために使用するコードです。
先ほど示したように、ループにはいくつかの変更があります。単純なループでは、クエリ パラメーターで指定した順序 (またはデフォルトでは日付の降順) ですべての投稿が出力されます。
と while( $query->have_posts() )
を分離すると、ループの外側に追加のマークアップを挿入できますが、クエリがデータを返しました。最後に、WP_Query
を複数回使用して、置換パラメーターを指定し、各ループの後に wp_reset_postdata()
を使用することで、ページ上に複数のループを作成できます。
以上がWP_Query をマスターする: ループの力を活用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。