CMSの中で圧倒的なシェアの高さを誇る「WordPress(ワードプレス)」。ネットでは様々なカスタマイズ情報がありますが、ネットの情報をコピーして使用しているだけで終わっていないでしょうか?
それでもWordpressであればそこそこのサイトを作ることができますが、この記事ではWordpressの「テーマ」にポイント当てることでWordpressの理解より深めてもらえるような解説をします。
テーマは「着せ替えデザイン」のようなもの
WordPressのテーマとは、
「着せ替え」のようにコンテンツをそのままでデザインを一瞬にして替える事ができるWordPressの特徴の1つです。
綺麗なデザイン、かわいい系、スタイリッシュなどの作りたいイメージにあわせてテーマを決めることもでき、そのにもにも飲食店、美容関連、医療、個人ブログと言ったサイトのジャンルに特化したテーマもあります。
その種類は有料、無料、オリジナルテーマの数が膨大にあり、なかなかサイトイメージにあるテーマを見つけ出すのにも一苦労です。
その分イメージ通りのテーマが見つかればサイトの完成まで大幅に時間を短種することができます。私は有料テーマを使うことが多いですが、最近ではCocoonといった無料でも高機能なテーマが増えてきています。
テーマはテンプレートファイルの集まり
テーマを変えるだけでデザインが変わることは先に説明しましたが、いろいろなテーマを使っていく中で「なぜテーマによってできる事、できない事があるのだろう」と疑問に思ったことはないでしょうか?例えばAのテーマではヘッダー部分に電話番号を設定できるが、Bのテーマでは設定できないなどテーマによってできる事とが違います。これはなぜでしょうか?
回答としては「テンプレートファイルが違うからです」
テーマはPHPやCSS、画像といった複数のテンプレートファイルの集合体で、デザインなどの内容が一式セットになっています。そのため、テーマを変更すれば複雑な処理を行うことなく、Webサイトのデザインや構成、機能などを変えることができます。
「テンプレートファイル」とはページごとにファイルが分かれていて、表示内容を決めることができます。例えばメインコンテンツは、「index.php(トップページ)」、ヘッダーは「header.php」、フッダーは「footer.php」などのテンプレートファイルを結合させることで構成されています。WEBページは複数のページで構築されています。
header.php・・・ヘッダ出力用のテンプレート
footer.php・・・フッター出力用のテンプレート
sidebar.php・・・サイドバー出力用のテンプレート
searchform.php・・・検索フォーム出力用のテンプレート
comments.php・・・コメント出力用のテンプレート
front-page.php・・・サイトのホーム(トップ)ページのテンプレート
home.php・・・サイトのホーム(トップ)ページのテンプレート
single.php・・・個別投稿ページのテンプレート
page.php・・・固定ページのテンプレート
category.php・・・カテゴリーページのテンプレート
search.php・・・検索結果ページのテンプレート
archive.php・・・記事一覧のテンプレート
404.php・・・404エラーページのテンプレート
テンプレートの中身が違うからできることが違う
テーマはテンプレートの集まりだということは理解できてたと思います。次に疑問に思うことはテーマごとにできる事が違うのはなぜでしょう?ではテンプレート中身をもう少し分解していきましょう。
例えばテーマAではサイドバーのウィジットエリアを使えますがテーマBでは使う場合は下記コードで
function my_widgets_init() {
register_sidebar(
array(
'name' => 'ウィジェットエリア1',
'id' => 'sidebar-1',
'description' => '',
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => "</li>\n",
'before_title' => '<h2 class="widgettitle">',
'after_title' => "</h2>\n",
)
);
}
add_action( 'widgets_init', 'my_widgets_init' );
上記でウィジットエリアの設定で新しいウィジットエリアが使えるようになりました。ウィジットエリアを表示するsidebar.phpに下記コードを記入します。
<?php dynamic_sidebar( 'sidebar-1' ); ?>
これでウィジットエリアに表示されるようになりました。
上記作業からわかるようにウィジットエリアを使う場合は、ウィジットエリアを定義する必要があります。この機能がないためウィジットエリアが使えないわけですね。