サイト内検索ができる仕組みを入れていこう。WPを使えばこういったことも簡単にできる。
検索フォーム設置の際のルール
検索フォームは以下のルールを満たさなければならない。
1.formタグのaction属性はトップページURL
2.formタグのmethodはget
3.labelタグを含める
4.name属性は[s]を使用する。
searchform.phpの作成
上記のルールを踏まえsearchform.phpを以下のように作成する。
<form action="<?php echo home_url('/');?>" method="get">
<label for="search">検索:</label>
<input type="text" name="s" id="search" value="<?php the_search_query(); ?>" />
<input type="submit" value="Search"/>
</form>
header.phpからの読み込み
searchform.phpをheader.phpから読み込むようにしよう。
header.phpでフォームを表示している部分を削除し、
<?php get_search_form();?>
を埋め込む
省略
<div id="searchBox">
<!--削除する部分
<form>
<input type="text" name="">
<button type="submit">Search</button>
</form>
-->
<?php get_search_form();?>
</div>
省略
css
マークアップに変更があったのでcssも以下のように変更する。
(30行目付近#searchBox関連に変更を加える)
#searchBox{
background: #aaa;
text-align: center;
padding:5px;
}
#searchBox label{
display: none;
}
#searchBox input[type="text"]{
height:34px;
width:400px;
font-size:20px;
}
#searchBox input[type="submit"]{
width: 139px;
height: 34px;
cursor: pointer;
background-color: rgb(64, 112, 255);
font-size:20px;
color:white;
}
確認
検索ワードを入れて検索してみよう。その言葉が含まれたページがリストアップされる。
search.phpテンプレートの作成
現在はindex.phpで表示されているので検索結果用ののテンプレートを作成しよう。
front-page.phpを複製し、search.phpにリネーム。
検索結果が0件だったときの処理を含めながら以下のように変更する。
<?php get_header();?>
<div id="mainWrapper">
<div id="mainContents">
<h1 id="searchResult">「<?php the_search_query();?>」の検索結果</h1>
<?php if($wp_query->found_posts > 0):?>
<?php get_template_part('loop','excerpt');?>
<?php else:?>
<p id="resultZero">検索結果はありませんでした。</p>
<?php endif;?>
</div>
<aside id="sideContents">
<?php get_sidebar('category');?>
<?php get_sidebar('date');?>
</aside>
</div><!--mainWrapper-->
<?php get_footer();?>
css
main.cssの末尾に以下を追記する。
/***search***/
#searchResult{
font-size:20px;
background:#eee;
border-left:5px solid #333;
border-bottom:2px solid #333;
margin-bottom:20px;
padding:10px;
}
#resultZero{
font-size:20px;
padding:20px;
}
確認
検索ワードにhogeといれて実行してみよう。以下のように表示されれば成功だ。
404.phpの作成
現在は存在しないURLにアクセスされた場合index.phpが表示されてしまう。
404.phpテンプレートを作成し、こういった場合に適切に誘導できるようにしよう。サイドバーはいらないのでpage.phpを複製し404.phpとリネームし以下のように記述する。
<?php get_header();?>
<div id="mainWrapper">
<div id="mainContents">
<h1 id="notFound">404 Not Found</h1>
<p id="notFoundP">お探しのページが見つかりませんでした。<br>
申し訳ございませんが、 <a href="<?php echo home_url('/');?>">こちらのリンク</a>からトップページにお戻りください。
</p>
</div>
</div><!--mainWrapper-->
<?php get_footer();?>
css
main.cssの末尾に以下を追記する。
/***404***/
#notFound{
font-size:20px;
background:#eee;
border-left:5px solid #333;
border-bottom:2px solid #333;
margin-bottom:20px;
padding:10px;
}
#notFoundP{
font-size:20px;
text-align: center;
line-height:1.5;
}
存在しないurlを入れて実行してみよう。以下のように表示されれば成功だ。
テーマのスクリーンショット
いよいよ最終仕上げだ。サイトのスクーンショットを作成する。
この際以下のルールを守る必要がある。
1.ファイル名はscreenshot.png
2.画像の縦横比は3:4
screenshot.png
作成したらthemeフォルダに配置する。
確認
管理画面。外観からテーマを見てみよう。以下のようにスクショファイルが反映されていれば成功だ。
まとめ
以上でWPオリジナルテンプレートの作成は終了だ。
今回の記事をもとに是非あなたのオリジナルテンプレートを作成してみてもらいたい。
コメント