2012年1月
データの移行に伴い、phpコードの文字化けが発生している箇所があります。
&lti や > のような文字化けが出ているコードはコピーしないでください。
現在、手直し中です。すみません。

single.phpの小技 -テンプレート切り替え-

ここでは、投稿記事single.phpの小技として、「テンプレートの切り替え」について説明しています。

別記事で、include構文を使った「特化型サイドバー」を紹介していますが、今回は、カテゴリーあるいは記事グループに特化したsingle.phpの小技についてです。

参照記事:サイドバーのカスタマイズ(2) フリースペースの応用、特化型サイドバー、incude構文 


§ もくじ

  1. 記事ごとにsingle.phpを切り替える
  2. カテゴリーごとにヘッダー、サイドバーを切り替える
  3. カテゴリーごとにテンプレートを切り替える


§ 記事ごとにsingle.phpを切り替える

先に紹介したinclude構文やカスタムフィールドを使えば、シングル記事内にコンテンツに特化したメッセージやアイテムを表示することが出来ますが、もっと大きなレベルでシングル記事のデザインを変えたい場合──たとえば、ギャラリーのページは、背景色をブラックにし、記事タイトルの代わりにアルバム風の表示をしたい──といった、サイト全体の外観を変えたい場合は、それに特化したsingle○○.phpを読み込ませるのが最適です。

しかし、single.phpの場合、他のテンプレートファイルから呼び出されることがないので、これを手動で設定するとなると、かなり複雑になってきます。

そこでおすすめしたいのが『Custom Post Template』というプラグイン。

http://wordpress.org/extend/plugins/custom-post-template/

記事を投稿する際、プルダウンメニューから使用するテンプレートを選択するだけで自動的に切り替えてくれる便利なプラグインです。

たとえば、ギャラリー用にはサイドバーの無い『single_gellery.php』を使用するとしましょう。

こんな感じです。

WordPress

管理画面でプラグインを有効化したら、single_gallery.phpファイルの冒頭に『Template Name Posts:』を書き入れます。
(サンプルは『sunshine』より)

WordPress

single_gallery.phpをテンプレートファイルのフォルダにアップロードします。

WordPress

すると、投稿画面に次のようなダイアログボックスが現れるので、使用するテンプレートを選んで、投稿を「保存」します。
(「Template Name Posts」で設定した名称が表示されます。覚えやすいものなら何でも構いません)

WordPress

「デフォルトテンプレート」というのは、single.phpを意味します。

何も設定しなければ、single.phpのデザインが表示されます。

テンプレートに関する設定は、カスタムフィールドに記憶されます。

WordPress

後で一括して編集したい場合は、phpMyadminを使って、『wp_postmeta』をエクスポートすれば簡単に出来ます。

まず、『wp_postmeta』のテーブルを選択します。

WordPress

次の項目にチェックを入れます。

WordPress

「Save as File」にチェックを入れて、PCに保存します。

WordPress

テキストエディタで開くと、次のようなsql文が現れます。

WordPress

Custom Post Templateで設定した値は、

(53, 24, ‘custom_post_template’, ‘single_gallery.php’),

と表示されています。

「53」はWordPressがランダムに割り当てる数字、「24」は記事ID、「custom_post_template」がカスタムフィールドの「名前」、single_gallery.phpが「値」になります。

値を変えたい場合は、テキストエディタで書き換えて、上書き保存すればOKです。
複数の記事を編集したい場合は、エディタの「置換機能」を使って一括変換することもできます。

設定を無効にしたい場合は、

(53, 24, ‘custom_post_template’, ‘single_gallery.php’)

この行をまるまる削除して、上書き保存します。

編集したsqlファイルをインポートすれば、編集した内容が反映されるようになります。

WordPress

作業する際は、小さなコンマなどを消してしまわないように注意して下さい。

また、データベースを直接書き換えますので、必ずバックアップを取ってから作業するようにしましょう。

※カスタマイズのポイント※

テーマテンプレートの中には、サイドバー無しのレイアウトや、メディア機能を織り込んだ特殊なpage_○○.phpを用意しているものがあります。

これらのpage.phpは、固定ページ用に作成されたものですが、上記で紹介した『Templage Name Posts:』を書き入れることでシングルページにも応用することができます。

自分でオリジナルのsingle_○○.phpを作成する自信がない場合は、同梱された他のファイルを応用すると簡単にカスタマイズすることができます。

自分で一から作成する場合は、オリジナルのsingle.phpのスタイルシートを少しずつアレンジしてみましょう。

あちこち、いじっているうちに、自分が使っているテンプレートファイルの理屈が分かってきて、かなり大胆なレイアウトの変更も出来るようになります。


§ カテゴリーごとにヘッダー、サイドバーを変える

カテゴリーに特化したヘッダーやサイドバーの読み込みについては、『サイドバーのカスタマイズ(2) ~フリースペースの応用、特化型サイドバー、incude構文』で紹介していますが、上記の「custom_post_template」を使っても簡単に変えることができます。 

たとえば、defaultのsingle.phpの場合、header.phpは次の記述で読み込んでいます。

WordPress

この部分を、読み込みたいheader_sample.phpのインクルード構文に置き換え、single_sample.phpとリネームして、アップロードします。

WordPress

つまり「header_sample.phpを読み込むsingle_sample.php」を作成するわけです。

次に、header.phpをアレンジしたheader_sample.phpを作成します。

たとえば、defautlの場合、div id=”headerimg” になっている部分をheader_sampleに書き換え、スタイルシートには他の背景画像が読み込まれるように設定します。

WordPress

スタイルシートも、別の背景画像header2.jpgが読み込まれるよう設定。

WordPress

記事を投稿する時、single_sample.phpを読み込むように設定します。

WordPress

するとsingle_sampleで指定したheader_sample.phpが表示されるようになります。

WordPress

この小技は、1つ1つの記事についてテンプレートが設定できるので非常に便利です。

ヘッダーだけでなく、コンテンツに特化したニュースやアフィリエイトコード、画像、映像などを盛り込んでもいいですね。

コンテンツによっては、微妙にレイアウトを変えたい場合もあるので、上手に利用すれば、思う通りの表示ができるようになります。

興味のある方は、ぜひトライして下さい。


§ カテゴリーごとにテンプレートを切り替える

プラグイン『GYS Themed Categories』を使えば、カテゴリーごとに簡単にテンプレートを切り替えることができます。

プラグイン・ファイルも一点だけなので、ほとんど負担になりません。

まず、下記サイトからプラグイン・ファイルをダウンロードします。

http://get-your-stuff.com/gys-themed-categories-20.html

解凍して、pluginsフォルダにアップロードし、管理画面で有効化します。

次に、『カテゴリー』の中から、適用したいカテゴリーを選択し、『編集』をクリックします。

すると「カテゴリーの編集」画面に、次のプルダウンが現れます。

WordPress

後は、使いたいテーマ・テンプレートを選択し、『カテゴリーを更新』をクリックするだけです。

何も指定しなければ、メインのテーマ・テンプレートが適用されます。

ただし、カテゴリーが複数にまたがる場合、どちらのテンプレートを優先するか、という選択はできませんので、ご注意下さい。

Ads

Leave a Reply

Trackback URL

QR Code Business Card