WordPressで特定カテゴリだけサイドバーを無くしてシングルカラムにする小技。応用も色々効いて便利。
エントリとしてはあまり書かない方なのですが、実はブログの裏周りをチマチマいじって自分好みの見た目にするのが大好きです(笑)
さて先日、サイドバーは右なのか左なのかと色々考えて試行錯誤したのは記憶に新しいところなのですが、そのまま考えてるうちに
「写真を大きく見せたいカテゴリだけシングルカラムにしてもよさそう!」
なんてことを思いついたので、なんとかしてできないかなと調べてみたらサンプルコードを発見するとともに、自分で試したらできたのでシェアしておきます。
参考にさせていただいたのはこちら
▼WordPress › フォーラム » あるページだけサイドバーを非表示に
特に最後「おまけ:別のやり方」として紹介されているコードがまさに私のやりたいことだったのでこちらを参考にさせていただきました。
簡単に言うと
- 今あるsingle.phpをコピーしsingle-default.phpとsingle-sample.phpを作る
- 元のsingle.phpの中身を書き換えてカテゴリごとに別のphpを読み込むように
- single-sample.phpから、<?php get_sidebar(); ?>を削除してcssで整形
の3ステップでできています。
サンプルのコードではsingle.phpを以下のように書き換えていました。
<?php $post = $wp_query->post; if ( in_category(array('サンプルページのスラッグ名')) ) { include(TEMPLATEPATH.'/single-c.php'); } else { include(TEMPLATEPATH.'/single-default.php'); }
が、私の環境ではうまく動きませんでした。
どうしてだろうと思っていたら、今使っているテーマが子テーマだから。「TEMPLATEPATH.」で呼ばれているのが親テーマのフォルダで、そこに新しく作った「single-default.php」と「single-sample.php」は存在しない、と。
そこでこんな風にアレンジしました。
<?php $post = $wp_query->post; if ( in_category(array('photo')) ) { include(STYLESHEETPATH.'/single-photo.php'); } else { include(STYLESHEETPATH.'/single-default.php'); } ?>
これであればstyle.cssのPATHを参照するので、子テーマフォルダに入った「single-default.php」と「single-sample.php」を参照できるというわけです。
あとは「single-sample.php」で使われているhtmlとcssを調整すれば、サンプルカテゴリだけ個別の表示ができます。
個別カテゴリのみ大きく見た目が変わるので、使いどころは良く考える必要がありますが、これをアレンジすれば色んなことが出来そうだなと思っています。
私はこれを使って「PHOTO」というカテゴリを作ってみました。
エントリはこれから増やしていく予定ですが、特に写真的に大きく見せたいものをこのカテゴリに入れたいなと思っています。
ちょっと面白いのが、既存カテゴリとPHOTOカテゴリの複数指定でも見た目が変わるので、例えばレストランのカテゴリでありながら写真は大きく見せるとか、あとからカテゴリを外して通常の2カラムにするなどアレンジもききます。
ちなみに見た目はこんな感じになります。
▼ロンドンに来てるのでヒースロー空港を12mm超広角で撮影してみた。【NEX-6 + VCL-ECU1】
万人に使える内容ではないかもしれませんが、使いどころによって色々できるのではないでしょうか?
こんな風に使えそう、なんてアイデアも聞いてみたいですね!
あなたの右脳の恋人タムカイでした。