こんにちは。永遠のプログラミング初心者とみっちです。
今日もせっせとWordPressカスタム中だよ。プログラミングをしていると、どうしてこんなに時が経つのが速いんだろう。
さて、今回はWordPressに関する記事をお届けしよう。
WordPressを使っていて特定のカテゴリの時だけに表示したい情報や広告があったりするよね。
例えば、このザ サイベースブログであれば、「子育て」カテゴリだけ、サイドメニューに生協の「パルシステム」の広告を表示したりしている。
関係のないカテゴリでは、この情報は表示したくないなーなんて時に、ちょっとだけ頑張れば実現できるよ!
WordPressテーマで使用中のPHPファイルを見極める
WordPressのこの部分をカスタマイズしたいと思っても、テーマ内のどのファイルをいじればいいのかなかなかすぐには分からないよね。
これがWordPressをカスタマイズしようとした際に、とっつきづらくしている要因なんだけれど、実はテンプレートで使用するファイル名はある程度決まっている。
例えば、投稿ページは「single.php」、固定ページは「page.php」、カテゴリページは「category.php」といった感じだ。
使用するファイルのルールはここにまとまっているよ。
http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4
ある程度ルールは決まっているんだけど、ファイルの名称をどんなものにするか、構成をどうするかなどは、テーマを作る作者に委ねられている。
プログラミング初心者が、WordPressのここをいじろうと思っても、該当するファイルで、該当する箇所を見つけるのはなかなか難しいんだよね。。
まずは、自分がいじりたいファイルが、なんていうPHPファイルかが分かれば、かなり楽じゃないっすか!?
さすがWordPress、いいプラグインがあるんだよね!
自分のブログにログインさえしていれば、閲覧中のページで使用されているPHPファイルを教えてくれる。
そんな超便利なプラグインは、
というもの。
Show Current Template
WordPressの管理画面から
「プラグイン」 → 「新規追加」
と進んで、「Show Current Template」と検索してみよう。
「今すぐインストール」で早速インストールしたら、「有効化」するだけですぐに使えるようになるよ!
管理者バーに使用中のファイルを表示
WordPressにログインしている状態の場合のみ、管理者専用のバーエリア(黒い帯)に、自分のブログで閲覧中のページのファイル名を表示してくれる。
通常の読者にファイル名を表示してしまうこともないので安心。
最近このプラグイン入れたんだけど、それまでは自分でプログラムをカスタムして表示させてたよ。。
最初からこれを使っていればよかったな。
さらに、マウスオーバーで該当PHPファイルからinclude(読み込み)しているPHPファイルまで表示してくれるよ。
めっちゃ便利!!!
ちなみに当ブログのテンプレートは現在、ブロガーに人気のWordPressテーマ「STORK(ストーク)」をカスタムして使ってます。
「Show Current Template」を使うことで、楽に使用中のファイルを調べられるようになった!
続いて、本題の前にファイルの編集方法を軽く説明しておこう。
該当するファイルを編集する準備
例えばサイドバーをいじろうと思ったら、「sidebar.php」といったファイルを編集する感じになる。
編集方法は、WordPressの管理画面から直接編集しても、FTPソフトで編集するファイルをサーバーからダウンロードしてテキストエディタで編集してもよい。
どちらの場合も、必ず事前にバックアップを取るようにしようね!
WordPressの管理画面で該当ファイルを編集する場合
管理画面で、
「外観」 → 「テーマの編集」
と進み、該当ファイルをクリックして編集画面に移動できるよ。
ファイルをテキストエディタで編集してサーバーにアップロードする場合
自分のPCにテーマの最新ファイル一式がある人はそれを編集するよ。
ファイルがない人は、FileZillaやWinSCPといったFTPクライアントソフトでサーバーから編集するファイルをまずはダウンロードしよう。
PHPファイルは、メモ帳では編集できないので、SublimeTextやAtomといった好きなテキストエディタで編集しよう。
ハァハァ
すみません、ここまで書いてきて息切れしてきちゃった。。
この辺の説明は省略しますw
いよいよ本題の特定カテゴリのみで広告や情報を表示する方法を紹介しよう。
特定カテゴリのみで広告や情報を表示する方法
ファイルの最上部にでも、カテゴリを取得する記述を入れよう。
<?php 〜 ?>
で囲まれた部分がPHPの記述となるよ。
そして、表示させたいHTMLを、条件分岐をする「if」文の記述で挟もう。
<?php
$category = get_the_category();
$cat_slug = $category[0]->category_nicename;
?>
・
・
・
省略 (テンプレートファイルに書かれているHTMLやPHPの記述など)
・
・
・
<?php if($cat_slug == 'secret'): ?>
<!-- 表示させたいHTML -->
<div class="example">
秘密のテキスト…
</div>
<!-- 表示させたいHTML ここまで -->
<?php endif; ?>
ここでは例として、仮にカテゴリ「秘密(スラッグURLはsecret)」の場合に「秘密のテキスト」を表示するような条件処理を行ってみた。
秘密のテキストを表示させたいカテゴリが複数ある場合にはif文をこんなふうに書ける。
<?php if($cat_slug == 'secret' or $cat_slug == 'yakiniku' or $cat_slug == 'beer'): ?>
これで、カテゴリが「焼肉」と「ビール」の時にも秘密のテキストを表示できるようになる。
「or」という記述を使っているのがポイントで、カテゴリスラッグが「secret」か「yakiniku」か「beer」だったらこれを表示といった書き方となるよ。
「or」よりも「||」という書き方の方を目にするかもしれない。
<?php if($cat_slug == 'secret' || $cat_slug == 'yakiniku' || $cat_slug == 'beer'): ?>
PHPがほとんど分からなくても、知っておくとWordPressのカスタマイズには便利なので覚えておくといいかなと!!
以上、「WordPressで特定のカテゴリのみ広告を表示する方法!」をお届けしました。