ホームページ バックエンド開発 PHPチュートリアル WordPress中查询文章的循环Loop结构及用法分析

WordPress中查询文章的循环Loop结构及用法分析

May 16, 2016 pm 08:02 PM

WordPress 上获取文章最重要的就是循环(Loop),事实上循环就是去数据库查询到相应的文章,然后暂时储存到全局变量里边,需要的时候一篇一篇的输出出来,WordPress 的循环设计的非常好,完成一次循环需要执行 2000 多行代码,而你在使用循环的时候看到的只是一个简单 while 循环加上几个函数,初学者也很好理解。

上边就是一个普通的主循环结构,首先用 have_posts() 函数判断是否有文章,有则用 while 语句循环,在循环体里边调用 the_posts() 函数,the_posts() 函数用来告诉 WordPress 核心的查询类,已经查过一篇文章了,每调用一次 the_posts(),循环中的当前文章就会改变。

WP_Query类

循环中所用到的方法都是来自于WP_Query类,这里再对WP_Query类做一下科普:
WP_Query 类的功能包括处理查询条件、去数据库获取文章、整理和储存文章、文章循环、根据文章查询条件判断页面类型。
属性

$query

传入的查询条件。

$query_vars

处理 $query 得到的可以使用的查询条件。

$queried_object

根据查询类型给出的查询归属。比如如果是根据分类查询,那么返回一个包含分类信息的类;如果是标签页则返回包含标签信息的类;作者页等以此类推。

$queried_object_id

返回 $queried_object 的 ID.比如分类就是分类 ID;标签就是标签 ID;以此类推。

$posts

从数据库中查询到的文章和文章信息被以数组的形式储存在这个变量里,每篇文章是一个从 WP_Post 类实例化的对象。

$post_count

当前文章数量,换句话说就是 $posts 变量里存储了几篇文章。

$found_posts

统计如果不启用分页会有多少文章。

$max_num_pages

总页数,当前文章被分成几页。

$current_post

当前文章的索引值。在循环中,开始循环 $current_post 为 –1,每循环一次则加 1,它表示当前循环到的文章在 $posts 变量(数组)中的索引值。

$post

循环中当前的文章,是一个包含文章和文章信息通过 WP_Post 类实例化的对象。

$is_single, $is_page, $is_archive, $is_preview, $is_date, $is_year, $is_month, $is_time, $is_author, $is_category, $is_tag, $is_tax, $is_search, $is_feed, $is_comment_feed, $is_trackback, $is_home, $is_404, $is_comments_popup, $is_admin, $is_attachment, $is_singular, $is_robots, $is_posts_page, $is_paged

根据查询条件判断当前是什么页面,然后储存在些变量里,详情可以参考 《 WordPress 页面判断函数 》。

方法

init()

初始化对象,所有属性设置为 null、-1、0 或 False,删除一些属性。

parse_query( $query )

解析并保存查询字符串。

parse_query_vars()

在之前的 WordPress 版本中和 parse_query() 一样的功能,现在直接调用 parse_query() 就好了。

get( $query_var )

根据名字获取一个查询条件。

set( $query_var, $value )

设置一个查询条件。

get_posts()

根据现有的查询条件去数据库获取文章,并保存在 $posts 属性里,同时设置好 $post_count 属性。此函数的返回值就是存储文章的 $posts 属性。

next_post()

(循环控制)将 $current_post 加 1,也就是把当前文章向前推进一篇,同时把推进后的当前文章添加到 $post 属性里,然后返回 $post 属性。

the_post()

(循环控制)进入下一篇文章,调用 next_post() 函数,然后把推进后的当前文章导入到全局变量里边。

have_posts()

(循环控制)判断循环是否完成,如果所有文章都循环完毕或者根本就没有文章则返回 False.

rewind_posts()

(循环控制)跳到循环开头。相当于重置 $current_post 属性和 $post 属性。

query( $query )

查询文章,包括调用 init() 方法、parse_query() 方法和 get_posts() 方法,并返回 get_posts() 方法的返回值,用此函数可以完成一个文章查询的完整操作。

get_queried_object()

生成 $queried_object 属性,如果已经存在则直接返回 $queried_object 属性,所以说,因为默认 $queried_object 是不存在的,想要调用 $queried_object 属性一定要直接使用 get_queried_object() 方法。

get_queried_object_id()

生成 $queried_object_id 属性,如果已经存在则直接返回 $queried_object_id 属性。类似 get_queried_object() 方法。

WP_Query( $query = '' ) , __constructor( $query = '' )

WP_Query 类的构造函数,实例化类的时候自己调用,如果你传入一个查询条件,它会自动调用 query() 方法帮你查询文章。

更多相关教程请访问 php编程从入门到精通全套视频教程

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP vs. Flutter: モバイル開発に最適な選択 PHP vs. Flutter: モバイル開発に最適な選択 May 06, 2024 pm 10:45 PM

PHP と Flutter は、モバイル開発でよく使われるテクノロジです。 Flutter は、クロスプラットフォーム機能、パフォーマンス、ユーザー インターフェイスに優れており、高パフォーマンス、クロスプラットフォーム、カスタマイズされた UI を必要とするアプリケーションに適しています。 PHP は、クロスプラットフォームではなく、パフォーマンスが低いサーバー側アプリケーションに適しています。

ワードプレスでページ幅を変更する方法 ワードプレスでページ幅を変更する方法 Apr 16, 2024 am 01:03 AM

style.css ファイルを編集することで、WordPress ページの幅を簡単に変更できます。 style.css ファイルを編集し、 .site-content { max-width: [好みの幅] }; を追加します。 [好みの幅]を編集してページ幅を設定します。変更を保存し、キャッシュをクリアします (オプション)。

ワードプレスで商品ページを作成する方法 ワードプレスで商品ページを作成する方法 Apr 16, 2024 am 12:39 AM

WordPress で製品ページを作成します。 1. 製品 (名前、説明、写真) を作成します。 2. ページ テンプレートをカスタマイズします (タイトル、説明、写真、ボタンを追加します)。 3. 製品情報 (在庫、サイズ、重量) を入力します。 4. バリエーションを作成します (さまざまな色、サイズ)。 5. 公開または非表示を設定します。 7. ページをプレビューして公開します。

wordpressの記事はどのフォルダにありますか? wordpressの記事はどのフォルダにありますか? Apr 16, 2024 am 10:29 AM

WordPress の投稿は /wp-content/uploads フォルダーに保存されます。このフォルダーはサブフォルダーを使用して、年、月、記事 ID ごとに整理された記事など、さまざまな種類のアップロードを分類します。記事ファイルはプレーン テキスト形式 (.txt) で保存され、通常、ファイル名には ID とタイトルが含まれます。

ワードプレスのテンプレートファイルはどこにありますか? ワードプレスのテンプレートファイルはどこにありますか? Apr 16, 2024 am 11:00 AM

WordPress テンプレート ファイルは、/wp-content/themes/[テーマ名]/ ディレクトリにあります。これらは、ヘッダー (header.php)、フッター (footer.php)、メイン テンプレート (index.php)、単一記事 (single.php)、ページ (page.php) など、Web サイトの外観と機能を決定するために使用されます。 、アーカイブ (archive.php)、カテゴリ (category.php)、タグ (tag.php)、検索 (search.php)、および 404 エラー ページ (404.php)。これらのファイルを編集および変更することで、WordPress Web サイトの外観をカスタマイズできます。

WordPress で著者を検索する方法 WordPress で著者を検索する方法 Apr 16, 2024 am 01:18 AM

WordPress で作成者を検索します。 1. 管理パネルにログインしたら、[投稿] または [ページ] に移動し、検索バーを使用して作成者名を入力し、[フィルター] で [作成者] を選択します。 2. その他のヒント: ワイルドカードを使用して検索範囲を広げたり、演算子を使用して条件を組み合わせたり、著者 ID を入力して記事を検索したりできます。

WordPress のどのバージョンが安定していますか? WordPress のどのバージョンが安定していますか? Apr 16, 2024 am 10:54 AM

最も安定した WordPress バージョンは、最新のセキュリティ パッチ、パフォーマンスの強化、新機能と改善が導入された最新バージョンです。最新バージョンに更新するには、WordPress ダッシュボードにログインし、[更新] ページに移動して、[今すぐ更新] をクリックします。

WordPress の開発にはどのような言語が使用されますか? WordPress の開発にはどのような言語が使用されますか? Apr 16, 2024 am 12:03 AM

WordPress は、データベース インタラクション、フォーム処理、動的コンテンツ生成、ユーザー リクエストを処理するコア プログラミング言語として PHP 言語を使用して開発されています。 PHP が選ばれた理由としては、クロスプラットフォームの互換性、学習の容易さ、活発なコミュニティ、豊富なライブラリとフレームワークなどが挙げられます。 PHP とは別に、WordPress は機能を強化するために HTML、CSS、JavaScript、SQL などの言語も使用します。

See all articles