diff --git a/theme/basics/post-types.md b/theme/basics/post-types.md index 7d161ee..c1683de 100644 --- a/theme/basics/post-types.md +++ b/theme/basics/post-types.md @@ -1,17 +1,39 @@ + +# 投稿タイプ + +WordPress にはさまざまな種類のコンテンツがあり、これらのコンテンツのことを「投稿タイプ」と呼びます。ただし、WordPress にあるさまざまな種類のコンテンツをのことも投稿タイプと呼ぶため、少し混乱するかもしれません。たとえば、投稿は投稿タイプのひとつですが、固定ページも同様に投稿タイプと呼びます。 + +内部的にはどのような投稿タイプでもすべて同じ場所 (データベースの `wp_posts` テーブル) に保存されていて、 `post_type` カラムによって区別されます。 + +デフォルトの投稿タイプに加えて、カスタム投稿タイプも作成できます。 + +[テンプレートファイル](https://developer.wordpress.org/themes/basics/template-files/)のページでは、投稿タイプはそれぞれ対応するテンプレートファイルで表示されると説明しました。投稿タイプは扱っているコンテンツの種類を分類するためのものであり、テンプレートファイルはそれにもとづいてコンテンツを表示するものです。一般的には、特定の投稿タイプと特定のテンプレートファイルは紐づいています。 + +## デフォルトの投稿タイプ + +WordPress をインストールした際に利用可能な標準の投稿タイプがいくつかあります。主要なものは次のとおりです: + +* 投稿 (投稿タイプ: `post` ) +* 固定ページ (投稿タイプ: `page`) +* 添付ファイル (投稿タイプ: `attachment`) +* リビジョン (投稿タイプ: `revision`) +* ナビゲーションメニュー (投稿タイプ: `nav_menu_item`) +* ブロックテンプレート (投稿タイプ: `wp_template`) +* テンプレートパーツ (投稿タイプ: `wp_template_part`) + + +上記の投稿タイプはテーマやプラグインで変更したり削除できますが、広く配布する予定のテーマやプラグインにおいて WordPress に組み込まれた機能を削除することは推奨されません。 + +このハンドブックではその他の投稿タイプについて詳しく説明しませんが、[ナビゲーションメニュー](https://developer.wordpress.org/themes/functionality/navigation-menus/)の機能を操作して構築することは重要であり、これについてはこのハンドブックでのちほど詳しく説明します。 + +### 投稿 (post) + +投稿はブログでよく使われます。 + +* 最も新しい投稿が最初となるように、逆時系列順に表示されます +* 日付と時間が設定されています +* デフォルトの[タクソノミーであるカテゴリとタグ](https://developer.wordpress.org/themes/functionality/categories-tags-custom-taxonomies/)が適用できます +* フィードの作成に使われます + +投稿を表示するテンプレートファイルは次のとおりです: + +* `single`、`single-post` +* `category` と関連するファイル +* `tag` と関連するファイル +* `taxonomy` と関連するファイル +* `archive` と関連するファイル +* `author` と関連するファイル +* `date` と関連するファイル +* `search` +* `home` +* `index` + +[クラシックテーマでの投稿テンプレートファイルについてはこちらをご覧ください](https://developer.wordpress.org/themes/template-files-section/post-template-files/)。 + +### 固定ページ (page) + +固定ページは通常のブログフィードとは違って、静的な投稿タイプです。その特徴は以下の通りです: + +* 時系列に表示されません +* カテゴリーやタグといったタクソノミーで分類されません +* ある固定ページが他の固定ページを親に持つ階層化した構造にできます + +固定ページを表示するテンプレートファイルは次のとおりです: + +* `page` と関連するファイル +* `front-page` +* `search` +* `index` + +[クラシックテーマでの固定ページテンプレートファイルについてはこちらをご覧ください](https://developer.wordpress.org/themes/template-files-section/page-template-files/)。 + +### 添付ファイル (attachment) + +添付ファイルはコンテンツの中で画像やメディアを表示する際に使用し、関連するファイルへのリンクとしても使用されます。 + +* WordPress のメディアアップロードシステムを使ってアップロードされたファイルについて、ファイル名や説明などの情報を保持します +* 画像ファイルの場合、 `wp_postmeta` テーブルで保持されるファイルの情報も含みます (画像サイズ・サムネイル・ファイルの保存場所など) + +添付ファイルを表示するテンプレートファイルは次のとおりです: * `MIME_type` * `attachment` @@ -80,19 +182,37 @@ The template files that display the Attachment post type are: * `single` * `index` + +[クラシックテーマでの添付ファイルテンプレートファイルについてはこちらをご覧ください](https://developer.wordpress.org/themes/template-files-section/attachment-template-files/)。 + +## カスタム投稿タイプ + +カスタム投稿タイプを使うと**独自の「投稿タイプ」を作成**できます。カスタム投稿タイプはテーマ内ではなく、プラグイン内で定義することを強くおすすめします。そうすればテーマを切り替えてもカスタム投稿タイプのコンテンツが消えることなく他のテーマでも使い続けることができます。 + +カスタム投稿タイプの作成については、[プラグイン開発ハンドブック](https://developer.wordpress.org/plugins/post-types/registering-custom-post-types/)をご覧ください。 + +一般的にテーマ内でカスタム投稿タイプを新たに作ることはないものの、プラグインによって作られたカスタム投稿タイプを表示できるようにしておくことをおすすめします。次のテンプレートファイルでカスタム投稿タイプを表示できます: * `single-{post-type}` * `archive-{post-type}` * `search` * `index` + +[クラシックテーマでのカスタム投稿タイプのテンプレートファイルについてはこちらをご覧ください](https://developer.wordpress.org/themes/template-files-section/custom-post-type-template-files/)。 diff --git a/theme/basics/template-tags.md b/theme/basics/template-tags.md index b58e5d6..373bc14 100644 --- a/theme/basics/template-tags.md +++ b/theme/basics/template-tags.md @@ -1,80 +1,170 @@ + +# テンプレートタグ + +テンプレートタグは、テーマの中でブログのタイトルや完全なサイドバーといった**コンテンツをデータベースから取得する**際に使用します。次の理由から、テーマでコンテンツを表示する方法としてテンプレートタグが推奨されます: + +* コンテンツを動的に表示できます +* 複数のテーマファイルの中で使用できます +* テーマファイルを小さく、わかりやすい単位に分けられます + +## テンプレートタグとは ? + +テンプレートタグは、データベースから何かを取得するときに使う簡単なコードです。次の3つの要素で構成されています: + +* PHP コードタグ +* WordPress 関数 +* 任意のパラメータ + +テンプレートタグを使って、他のテーマファイルやデータベースの情報を取得できます。 + +たとえば `[get_header()](https://developer.wordpress.org/reference/functions/get_header/)` を使うと `header.php` ファイルを取得して、その内容を現在のテーマファイルの中に含めることができます。同様に、 `[get_footer()](https://developer.wordpress.org/reference/functions/get_footer/)` を使うと `footer.php` の内容を取得できます。 + +その他にもさまざまな種類のテンプレートタグがあります: + +* `[the_title()](https://developer.wordpress.org/reference/functions/the_title/)` – データベースからページのタイトルを取得して、テンプレートファイルに含めます。 +* `[bloginfo( 'name' )](https://developer.wordpress.org/reference/functions/bloginfo/)` – データベースからブログのタイトルを取得して、テンプレートファイルに含めます。 + +上記の例には、括弧の中にパラメータが含まれていることがわかります。パラメータを使うと次の2つのことができます: + +1. 特定の情報を取得する +2. 情報を任意の方法でフォーマットする + +[パラメーターについては以下で詳しく説明します](#parameters)が、 WordPress 固有のタグでデータの表示方法を制御できることを知っておくと便利です。 + +## なぜテンプレートタグを使うのか + +テンプレートタグを使うとコンテンツの任意の部分をカプセル化できるので、テーマファイルにさまざまな種類のテンプレートを含めることが簡単になり、テーマの保守も容易になります。 + +`header.php` ファイルを1つ作成して `single.php`, `page.php`, `front-page.php` といったテーマファイルで `[get_header()](https://developer.wordpress.org/reference/functions/get_header/)` を使ってその内容を参照するほうが、各テーマファイルの中にまったく同じコードをコピー&ペーストするよりもはるかに簡単です。 `header.php` ファイルを編集すると、自動的にすべてのテーマファイルの中に反映されるので、テーマの保守も容易になります。 + +また、テンプレートタグを使うことで、データベースから取得するような動的なデータの表示も可能です。ヘッダーの中に `title` タグを含める際、次のようにハードコードできます: ```xml My Personal Website ``` + +しかし、このようにハードコードしてしまうと、 Web サイトのタイトルを変更したい場合に毎回テーマを書き換える必要があります。その代わりに、テンプレートタグ `[bloginfo( 'name' )](https://developer.wordpress.org/reference/functions/bloginfo/)` を使うとデータベースから自動的にサイトのタイトルが取得できるので、 Web サイトのタイトルを変更したい場合は WordPress の管理画面上で変更するだけで済みます。 + +## テンプレートタグの使い方 + +テンプレートタグの使い方は簡単です。テンプレートファイルの中で php のコードを1行含めるだけでテンプレートタグが使えます。たとえば `header.php` の内容を表示したいときは次のように書くだけです: ```php get_header(); ``` + +### パラメータ + +テンプレートタグの中にはパラメータを指定できるものがあります。パラメータを使うと、データベースから取得する情報を細かく指定できます。 + +たとえば、 `[bloginfo()](https://developer.wordpress.org/reference/functions/bloginfo/)` テンプレートタグでは WordPress に関する情報のうち、どの情報を取得するかをパラメータで指定できます。ブログの名前を表示するには、パラメータとして "name" を指定します: ```php bloginfo( 'name' ); ``` + +ブログに使用している WordPress のバージョンを表示するには、パラメータとして "version" を指定します: ```php bloginfo( 'version' ); ``` + +テンプレートタグごとに、パラメータは異なります。パラメータの一覧とそれぞれのパラメータの役割については[コードリファレンス](https://developer.wordpress.org/reference/)のテンプレートタグのページを確認してください。 + +### ループ内でテンプレートタグを使う + +多くのテンプレートタグは [WordPress のループ](https://developer.wordpress.org/themes/basics/the-loop/)内で使えます。つまり、テンプレートタグが php の「ループ」の一部としてテンプレートファイルに含まれており、ループ内の実装にもとづいてユーザーが目にするページを生成します。 + +WordPress のループは次のコードで始まります: ```php if ( have_posts() ) : @@ -82,7 +172,10 @@ if ( have_posts() ) : the_post(); ``` + +ループ内で使用するテンプレートタグは、ループの終わりを示す次のコードまでの間に含める必要があります: ```php endwhile; @@ -91,26 +184,49 @@ else : endif; ``` + +ループ内で使用するテンプレートタグには次のものが含まれます: * [the\_content()](https://developer.wordpress.org/reference/functions/the_content/) * [the\_excerpt()](https://developer.wordpress.org/reference/functions/the_excerpt/) * [next\_post()](https://developer.wordpress.org/reference/functions/next_post/) * [previous\_post()](https://developer.wordpress.org/reference/functions/previous_post/) + +これらの関数をループ内で使う必要があるのは、グローバルの投稿オブジェクトに依存するためです。 + +次に示すような、ループの中で使う必要がないテンプレートタグについては、どこでも使うことができます。 * [wp\_list\_cats()](https://developer.wordpress.org/reference/functions/wp_list_cats/) * [wp\_list\_pages()](https://developer.wordpress.org/reference/functions/wp_list_pages/) + +これらのタグは、サイドバー、ヘッダー、フッターなど、テンプレートファイルの好きな箇所で使うことができます。 + +これらの関数は通常、グローバルの投稿オブジェクトに依存しません。 + +## 関連項目 + +* [条件分岐タグ](https://developer.wordpress.org/themes/basics/conditional-tags/) +* [テンプレートタグの一覧](https://developer.wordpress.org/themes/references/list-of-template-tags/) +* [プラグイン API フック](_wp_link_placeholder) diff --git a/theme/basics/the-loop.md b/theme/basics/the-loop.md index d4daf18..a54cb43 100644 --- a/theme/basics/the-loop.md +++ b/theme/basics/the-loop.md @@ -1,23 +1,53 @@ + +# ループ + +ループは、テーマの[テンプレートファイル](https://developer.wordpress.org/themes/basics/template-files/)の中で投稿を表示する際に使用する WordPress のしくみです。1ページに表示する投稿の数は、管理画面の表示設定の中で設定できます。ループ内では、現在のページに表示するべき投稿を取得し、テーマの実装に沿って投稿をフォーマットします。 + +ループは WordPress のデータベースから各投稿のデータを取得し、[テンプレートタグ](https://developer.wordpress.org/themes/basics/template-tags/)の位置に適切な情報を挿入します。ループ内の HTML や PHP のコードは**各投稿ごとに**実行されます。 + +簡単に言うと、ループでは現在のページで取得した投稿に対して、1つずつテーマで指定されたアクションを実行します。 + +ループは次のようなさまざまな用途で使用できます: + +* ブログのホームページで投稿のタイトルや抜粋を表示する +* 投稿のコンテンツやコメントを表示する +* テンプレートタグを使ってコンテンツを個別のページに表示する +* [カスタム投稿タイプ](https://developer.wordpress.org/themes/functionality/pages-posts-custom-post-types/)やカスタムフィールドのデータを表示する + +テンプレートファイルの中でループをカスタマイズすると、さまざまなコンテンツを表示したり操作できます。 + +## ループの詳細 + +ループの基本的な形は次の通りです: ```php ``` + +このループは、投稿があればループして投稿内容を表示する例です。さらに詳しく見て見ましょう: + +* `[have_posts()](https://developer.wordpress.org/reference/functions/have_posts/)` 関数で投稿が存在するかを確認しています。 +* もし投稿がある場合は、括弧内の条件が論理的に真である限り、 **`while`** ループが実行されます。つまり、 `have_posts()` が真である限り、ループが継続します。 + +### ループの使い方 + +ループは `index.php` や、投稿の内容を表示するためのテンプレートの中で使う必要があります。ヘッダーを何度も重複させたくないので、ループは常に `[get_header()](https://developer.wordpress.org/reference/functions/get_header/)` の後で呼び出すべきです。 ```php ``` + +上記の例では、ループの終わりに `endwhile` と `endif` があります。ループは常に同じ `if` 文と `while` 文で始まり、同じ end 文で終わらなければなりません。 + +すべての投稿に適用したい[テンプレートタグ](https://developer.wordpress.org/themes/basics/template-tags/)は、開始文と終了文の間に記述する必要があります。 + +ヒント: 条件に合致する投稿がない場合に、独自の404「見つかりませんでした」のメッセージを表示できます。次の例のように、このメッセージは `endwhile` と `endif` の間に記述する必要があります。 + +簡単な `index.php` ファイルは次のようになります: ```php ``` + +## ループで表示できるもの + +ループでは、投稿ごとに多くの要素を表示できます。たとえば、一般的に使える[テンプレートタグ](https://developer.wordpress.org/themes/basics/template-tags/)は次の通りです: + +* `[next_post_link()](https://developer.wordpress.org/reference/functions/next_post_link/)` – 現在の投稿の**後**に公開された投稿へのリンク +* `[previous_post_link()](https://developer.wordpress.org/reference/functions/previous_post_link/)` – 現在の投稿の**前**に公開された投稿へのリンク +* `[the_category()](https://developer.wordpress.org/reference/functions/the_category/)` – 表示している投稿や固定ページに関連するカテゴリー +* `[the_author()](https://developer.wordpress.org/reference/functions/the_author/)` – 投稿や固定ページの投稿者 +* `[the_content()](https://developer.wordpress.org/reference/functions/the_content/)` – 投稿や固定ページのコンテンツ +* `[the_excerpt()](https://developer.wordpress.org/reference/functions/the_excerpt/)` – 投稿のコンテンツの最初の55文字と省略記号 (…)、または、投稿に遷移するためのリンク。投稿の「抜粋」フィールドを使って抜粋の長さをカスタマイズできます。 +* `[the_ID()](https://developer.wordpress.org/reference/functions/the_id/)` – 投稿や固定ページの ID +* `[the_meta()](https://developer.wordpress.org/reference/functions/the_meta/)` – 投稿や固定ページに関連するカスタムフィールド +* `[the_shortlink()](https://developer.wordpress.org/reference/functions/the_shortlink/)` – サイトの URL と投稿や固定ページの ID を使って生成する、投稿や固定ページへのリンク +* `[the_tags()](https://developer.wordpress.org/reference/functions/the_tags/)` – 投稿に関連するタグ +* `[the_title()](https://developer.wordpress.org/reference/functions/the_title/)` – 投稿や固定ページのタイトル +* `[the_time()](https://developer.wordpress.org/reference/functions/the_time/)` – 投稿や固定ページの日付や時刻。php の標準の date 関数のフォーマットを使ってカスタマイズできます。 + + +[条件分岐タグ](https://developer.wordpress.org/themes/basics/conditional-tags/)を使うこともできます: + +* `[is_home()](https://developer.wordpress.org/reference/functions/is_home/)` – 現在のページがホームページであれば true を返す +* `[is_admin()](https://developer.wordpress.org/reference/functions/is_admin/)` – 管理画面であれば true を返す +* `[is_single()](https://developer.wordpress.org/reference/functions/is_single/)` – 個別投稿を表示していれば true を返す +* `[is_page()](https://developer.wordpress.org/reference/functions/is_page/)` – 固定ページを表示していれば true を返す +* `[is_page_template()](https://developer.wordpress.org/reference/functions/is_page_template/)` – 固定ページが任意のテンプレートを使用しているか判断します。例: `is_page_template('about-page.php')` +* `[is_category()](https://developer.wordpress.org/reference/functions/is_category/)` – 指定されたカテゴリーのアーカイブページを表示していれば true を返す。例: `is_category('news')` +* `[is_tag()](https://developer.wordpress.org/reference/functions/is_tag/)` – 指定されたタグのアーカイブページを表示していれば true を返す +* `[is_author()](https://developer.wordpress.org/reference/functions/is_author/)` – 投稿者のアーカイブページを表示していれば true を返す +* `[is_search()](https://developer.wordpress.org/reference/functions/is_search/)` – 検索ページを表示していれば true を返す +* `[is_404()](https://developer.wordpress.org/reference/functions/is_404/)` – 現在のページが存在しなければ true を返す +* `[has_excerpt()](https://developer.wordpress.org/reference/functions/has_excerpt/)` – 投稿や固定ページに抜粋があれば true を返す + + +## 例 + +ループの使い方を見てみましょう: + +### 基本的な例 + +#### ブログアーカイブ + +多くのブログには投稿タイトル、サムネイル、抜粋を表示するブログアーカイブページがあります。次の例は、投稿があるかをチェックし、投稿がある場合にはそれぞれの投稿のタイトル、サムネイル、抜粋を表示するループの例です。投稿がない場合は、括弧の中のメッセージを表示します。 ```php ``` + +#### 個別の投稿 + +WordPress の投稿には個別のページがあり、関連する情報が表示されます。テンプレートタグを使って表示する情報をカスタマイズできます。 + +以下のループの例では、投稿のタイトルとコンテンツを表示します。投稿や固定ページのテンプレートファイルで使うと、投稿に関する基本的な情報を表示できます。このテンプレートをカスタマイズすれば、カテゴリーといったより多くのデータを投稿に追加できます。 ```php ``` + +### 発展的な使い方 + +#### カテゴリーに応じてスタイルを変更する + +以下の例ではいくつかのことを行います: + +* まず、上記の例と同様に、各投稿のタイトル、時刻、投稿者、コンテンツ、カテゴリーを表示します。 +* 次に、 `[in_category()](https://developer.wordpress.org/reference/functions/in_category/)` テンプレートタグを使って、カテゴリー ID が "3" の投稿に異なるスタイルを適用します。 + +この例のコード内のコメントで、ループの各段階ごとに解説しています。 + + +```php + +
+ +
+ ', ';' ); + + // この投稿者のその他の投稿へのリンクを表示する + printf( __( 'Posted by %s', 'textdomain' ), get_the_author_posts_link() ); + + // 投稿のコンテンツを div タグ内で表示する + ?> +
+ +
+ + +
+ + +``` + +## 複数のループ + +場合によって、複数のループを使う必要があるかもしれません。たとえば、ページ上部にある目次リストに投稿のタイトルを表示し、ページ下部でコンテンツを表示することがあるかもしれません。クエリーは変更されないため、投稿を2回目にループする場合はループを巻き戻す必要があります。その際は [rewind_posts()](https://developer.wordpress.org/reference/functions/rewind_posts/) 関数を使います。 + +### rewind_posts を使う + +`[rewind_posts()](https://developer.wordpress.org/reference/functions/rewind_posts/)` を使うと、**同じ**クエリーを2回ループさせることができます。同じクエリーをページの異なる箇所に使いたい場合に有用です。 + +`rewind_posts()` の例です: + +```php + +``` + +### 2つ目のクエリーとループを使う + +同じクエリーでループを2つ使うのは簡単ですが、必ずしもそれが求めているものであるとは限りません。しばしば、テンプレートの中で異なるコンテンツを表示するために2つ目のクエリーを作りたいでしょう。たとえば、同じページの中で2つのグループの投稿を表示して、それぞれのグループで異なる処理をする場合です。よくある使い方は、以下のように、投稿のコンテンツの下に同じカテゴリーに属する投稿のリストを表示することです。 + +```php +have_posts() ) + echo ''; +endif; +wp_reset_postdata(); +?> +``` + +上記の例では、まず通常のループを表示します。次に、特定のカテゴリー (上記の例では `example-category` のスラッグ) を取得するため `[WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)` を使って新しい変数を定義します。 + +上記の例で、通常のループとは異なる点が1つあります。それは、 `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` を呼び出して投稿データをリセットしている点です。2つ目のループを使う前に、投稿データをリセットする必要があります。これには2通りの方法があります: + +1. `[rewind_posts()](https://developer.wordpress.org/reference/functions/rewind_posts/)` 関数を使う +2. 新しいクエリーオブジェクトを作る + +### 複数のループをリセットする + +テンプレートの中で複数のループを使う際に、それらをリセットすることが重要です。そうしないと、グローバル変数の `$post` 内でどのようにデータを保存し使用するかによって、予期しない結果となることがあります。呼び出し方に応じて、ループをリセットする方法が3通りあります。 * `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` * `[wp_reset_query()](https://developer.wordpress.org/reference/functions/wp_reset_query/)` * `[rewind_posts()](https://developer.wordpress.org/reference/functions/rewind_posts/)` + +### wp_reset_postdata を使う + +`WP_Query` を使ってカスタムループや複数のループを実行する際は `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` を使ってください。この関数はグローバル変数の `$post` の内容をメインクエリーの投稿のものにリストアします。これはループをリセットする際に最もよく使う関数です。 + +この関数を適切に使うには、次のコードを `WP_Query` を使ったループの後に記述します: ```php ``` + +以下は `WP_Query` を使ったループを `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` でリセットする例です。 + +```php + 3 ); + +// WP_Query を呼び出す変数 +$the_query = new WP_Query( $args ); +if ( $the_query->have_posts() ) : + // ループを開始する + while ( $the_query->have_posts() ) : $the_query->the_post(); + the_title(); + the_excerpt(); + // ループを終了する + endwhile; +else: +// このクエリーに合致する投稿がない場合には、このテキストを表示する + _e( 'Sorry, no posts matched your criteria.', 'textdomain' ); +endif; + +wp_reset_postdata(); +?> +``` + + +### wp_reset_query を使う + +`[wp_reset_query()](https://developer.wordpress.org/reference/functions/wp_reset_query/)` を使うと、 [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/) とグローバル変数の `$post` データを元のメインループのクエリーにリストアできます。ループの中で `[query_posts()](https://developer.wordpress.org/reference/functions/query_posts/)` を使った場合は、この関数を使ってループを**必ず**リセットする必要があります。この関数は裏で `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` が実行されるので、 [WP_Query](https://developer.wordpress.org/reference/classes/wp_query/) を使ったカスタムループの後でこの関数を使うこともできます。ただし、 `WP_Query` が関係するループでは `[wp_reset_postdata()](https://developer.wordpress.org/reference/functions/wp_reset_postdata/)` を使うことが推奨されています。 + +注意: `[query_posts()](https://developer.wordpress.org/reference/functions/query_posts/)` は**推奨されておらず**、可能な限り避けてください。そのため、 `[wp_reset_query()](https://developer.wordpress.org/reference/functions/wp_reset_query/)` を使う機会も少ないでしょう。 + +この関数を適切に使うには、 `[query_posts()](https://developer.wordpress.org/reference/functions/query_posts/)` を使ったループの後に次のコードを記述してください。 ```php -``` \ No newline at end of file +```