当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

検索ページの作成

提供: WordPress Codex 日本語版
2010年4月13日 (火) 08:31時点におけるMizuno (トーク | 投稿記録)による版 (page.php を使用する: まで翻訳)

移動先: 案内検索

このページ「検索ページの作成」は未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています

ページ名検討中: このページ名「検索ページの作成」について改名が提案されています。ご意見をお寄せください。

検索ページは、カスタムページテンプレートの WordPress ページで、検索した訪問者にいろいろな情報を提供します。

知っておくべきこと

異なる WordPress テーマは、異なるテンプレートファイルを有しています。search.php テンプレートファイルが含まれているテーマもあります。これは、「検索ページ」ではありません。検索結果を表示するページです。searchform.php というテンプレートファイルもあります。このテンプレートは、サイドバーに入れられていることがよくあり、検索ボックスフォームを生成します。テーマに無い場合は、デフォルトテーマからコピーすることができます。

オリジナルのカスタム検索ページを作成するには、ページテンプレートを作成し、検索フォームと、検索する前に訪問者に知らせたい情報とを含めます。

WordPress テーマに page.php テンプレートファイルが含まれいているかどうかを調べてください。デフォルト WordPress テーマにはこのテンプレートが含まれていますが、そうでないものも多くあります。含まれている場合は、こちらの説明にしたがってください。含まれていない場合は、オリジナルを作成するために必要な情報をごらんください。

page.php を使用する

1. テキストエディタを使用して page.php を開き、searchpage.php という名前で保存します。(注: ファイル名 search.php は特別なテンプレート名として予約されています。このファイル名は避けてください。提案している searchpage.php はファイルリストで認識しやすいでしょう。)

2. 保存したら、このファイルを編集します。

  • The Loop を削除し(基本的に、コンテンツ div 内にあるもの全て)、div タグを残します。
  • 検索投稿等の heading を追加します。CSS スタイルシートの既存クラスを使用するか、新規作成してください。
  • コンテンツ div あるいはページコンテンツを含む他の div に以下をコピーしてください。
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
  • searchpage.php の一番最初に以下を追加すると、管理画面で WordPress が検索ページとして認識します。
<?php
/*
Template Name: Search Page
*/
?>
  • ファイルを保存します。
  • ファイルをテーマディレクトリにアップロードします (style.css スタイルシートを変更した場合は、このファイルもアップロードしてください)。
  • In the Administration Panels go to Write > Write Page.
    ファイル:writepage2 5.png
    WordPress Write Page Panel
  • In the title field enter Search.
  • Do not write anything in the content area.
  • From the Page Template drop-down menu select: Search Page
  • Click the Create New Page button
  • Select the Manage Pages panel.
  • Write down the page_id number of your newly created Page named Search Page.

(訳注: WP2.5 の管理画面での操作。要更新 --Mizuno 2010年4月12日 (月) 23:31 (UTC))

これで、検索ページの外観をカスタマイズする準備ができました。

Creating a Search Page Template

If you do not have a page.php, you can create one based upon your Theme's index.php template file.

  1. In a text editor, open your theme's index.php and save as searchpage.php.
  2. Then follow the editing steps from above.

Preserving Search Page Results and Pagination

Search results and Pagination may stop working when applying customization to the search template. To avoid these issues the first thing any developer needs to do is add the following code to the start of their Search template to ensure that the original WordPress query is preserved. To customize the query append additional arguments to (array) $search_query. Execute the $search_query through a new $wp_query object, more information on the WP_Query object can be found at http://codex.wordpress.org/Function_Reference/WP_Query

<?php
global $query_string;

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
	$query_split = explode("=", $string);
	$search_query[$query_split[0]] = $query_split[1];
} // foreach

$search = new WP_Query($search_query);
?>

Additional customization arguments can be found on the Codex at http://codex.wordpress.org/Template_Tags/query_posts

W3prodigy 15:25, 30 March 2010 (UTC)

Display Total Results

To access the total number of search results from a search, you should retrieve the total number of posts found using the wp_query object.

<?php
global $wp_query;
$total_results = $wp_query->found_posts;
?>

More information on WP Query can be found on the Codex at http://codex.wordpress.org/Function_Reference/WP_Query

W3prodigy 15:25, 30 March 2010 (UTC)

Linking to Your Search Page

You can now make a link to your custom Search Page in several ways.

Using the Page ID 
Whether or not you use permalinks, you can link to your new Search Page by using Page ID number of the Page.
<a href="index.php?page_id=17" title="Search Page">Search Page</a>

OR

<a href="<?php bloginfo('url'); ?>/?page_id=17">Search Page</a>
Using the Page Slug 
The Page slug is set in the Edit Page panel. It is the name of the page if you are using Permalinks. You can manually change this. An example of a Page slug link would be:
<a href="/wordpress/search-page" title="Search Page">Search Page</a>

OR

<a href="<?php bloginfo('url'); ?>/wordpress/search-page" title="Search Page">Search Page</a>
Using wp_list_pages() 
If you are using the wp_list_pages() template tag, the page name would be automatically generated in your Pages list.

Customizing Your Search Page

Now that you have created your custom Search Page, you can customize the display. From the Manage > Pages panel, on your custom Search Page line, choose Edit. Or open your searchpage.php in a text editor and edit it there.

Above the include function for your searchform.php within the content div, you can add text to help visitors search your site.

<p>
My Site features articles about 
<a title="WordPress Articles" href="index.php?cat=4">WordPress</a>, 
<a title="Web Design Articles" href="index.php?cat=5">web page design</a>, 
<a title="Development Articles" href="index.php?cat=6">website 
development</a>,
and <a title="CSS Articles" href="index.php?cat=7">CSS</a>.
</p>
<p>To search my website, please use the form below.</p>

<?php include (TEMPLATEPATH . '/searchform.php'); ?>

You might want to include a list of keywords or other information, images, or details to customize your custom Search Page.

最新英語版: WordPress Codex » Creating a Static Front Page最新版との差分

この記事は翻訳時に編集が必要であるとマークされていました。その為Codex原文が大きく編集されている可能性があります。内容を確認される際は原文を参照していただき、可能であれば本項目へ反映させてください。よりよいCodexを作成するためのお手伝いをお願いします。