サポート » テーマ » 各カテゴリーのシングルページでサイドバーの表示・非表示を変えたい

  • あるカテゴリーのシングルページではサイドバーを表示して、他のカテゴリーのシングルページでは非表示にしたいと思っています。
    カテゴリーごとのデザイン変更はテンプレートにcategory-(ID).phpを作ることでできました。
    そのカテゴリーではサイドバーを非表にしたいのですが、やり方がわかりません。
    ご教授頂けると幸いです。

    宜しくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • プラグインを使う方法があります。

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

    page templateを作る要領で、特定のカテゴリーに用いる
    シングル記事用のテンプレート(sample.php)を作り、
    その中に、sidebar.phpを読み込ませないようにします。

    記事投稿画面にテンプレートを選ぶプルダウンメニューが表示されますので、
    sample.phpを選べば、サイドバーのないデザインになるはずです。

    レイアウトが崩れた場合は、CSSで調整します。

    逆に、特定のカテゴリーに専用のサイドバーを読み込ませたい時は、

    サイドバー用のテンプレート(sample_side.php)を用意します。

    sanmple.phpの中に、sample_side.phpを
    呼び出すコードを入れます。

    たとえば、

    <? php get_header(); ? >

    <? php include (TEMPLATEPATH . ‘/sample_side.php’); ? >

    <? php the_content ? >

    <? php get_footer(); ? >

    お使いのテーマファイルのページテンプレートやsingle.phpを参考に、
    デフォルトのsidebar.phpが入る場所にインクルードする要領で書けば、上手く行きます。

    カテゴリーに応じて、サイドバーに表示する情報を変えたり、
    特定のカテゴリーにだけ広告を表示させたり
    (sample_ads.phpなどを作って、sample.phpの中にインクルードする)
    必要なら、ヘッダーやフッターも簡単に変えられますので、便利ですよ。

    参照はコチラ

    映画コンテンツのテンプレート
    http://sanmarie.enf.pl/walle

    奥様向けコンテンツのテンプレート
    http://sanmarie.enf.pl/prettykitchen_top

    トピック投稿者 pinxnake

    (@pinxnake)

    sanmarieさま

    情報ありがとうございます。早速試してみます。
    ただ、これだと、投稿毎にページテンプレートを選ばないといけないんですよね?
    できれば、カテゴリーを選ぶと自動的に指定された表示になってくれるとありがたいです。

    カテゴリーAは、サイドバーを表示
    カテゴリーBは サイドバー非表示
    カテゴリーCは サイドバー非表示

    のように、
    僕だけが投稿するのであれば、それで問題ないんですが、
    投稿する人がいろいろな方がいるので、できるだけシンプルにしたいなと思っています。

    とにかく、この方法をやってみます。

    他にもアイデアがありましたら宜しくお願いします。

    カテゴリーごとのデザイン変更はテンプレートにcategory-(ID).phpを作ることでできました。
    そのカテゴリーではサイドバーを非表にしたいのですが、やり方がわかりません。

    難しいことは考えずに、category-(AのID).phpから<?php get_sidebar(); ?>を削除すればよいのではないですかね。
    single.phpでかつ特定のカテゴリだけサイドバーを表示したくないのであれば、<?php get_sidebar(); ?>を

    if( !is_category(AのID) ) {
      get_sidebar();
    }

    に変更とかでどうでしょう。

    この辺を参考にサイドバーの内容をページによって変更するがんばってください;)

    もう一つ、カテゴリー毎にテンプレートを変えるプラグインがあります。

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

    WPのカテゴリー編集画面にテンプレートを指定するプルダウン・メニュー(あるいはボタンだったか・・)が表示されますので、それを指定すれば、カテゴリーに属する全ての記事について指定のテンプレートが適用されます。
    ただ、カテゴリーが二つにまたかる場合、どのように動作するかは、私の方では未確認です。

    あと、[classic][modern]のように、まったく異なる種類のテンプレートの導入には問題ないのですが、[calssic]の一部をアレンジした[classic_2]のように、ベースが同じテンプレートフォルダーをthemeのディレクトリに同時に置くと、記事変更ボタンを押した時、画面が真っ白になったり、管理画面からファイルの編集が出来なくなったり、WPそのものが誤動作するという欠点があります(中で混乱するのかもしれません。お使いのサーバーにもよるかもしれませんが)
    また、コマメにテンプレートファイルを編集される場合、カテゴリー毎に三つも四つもテーマ・テンプレートを置くと、メンテナンスが大変、というデメリットもありますね。

    でも、プラグインとしては便利なので、試してみる価値はあると思います。

    前回、紹介した、
    Custom Post Template
    http://wordpress.org/extend/plugins/custom-post-template/

    ちょっとだけ補足します。

    指定したテーマファイルは、各記事のメタデータに、
    名前「custom_post_template」、値「sanmple.php」という形で保存されます。

    WP postmetaで確認すると、
    (35595, 5350, ‘custom_post_template’, ‘sample.php’),

    もし、途中で、テンプレートを変えたくなった場合は、exportしたpostmetaの’sample.php’を、テキストファイルの一発置換で、’modern.php’に書き換え、再びimportするだけで、数十本の記事のテンプレートが一気に書き換わりますので、いちいち記事編集画面を開いて、指定し直すという手間は省けます。

    ただ、記事を投稿する各個人が、テンプレートの指定を確実にできるのか、またそれを別の管理画面から確認するという方法はありませんので、複数で管理する場合は、不安定要素が大きいかも知れませんね。

    良い方法が見つかるといいですね。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「各カテゴリーのシングルページでサイドバーの表示・非表示を変えたい」には新たに返信することはできません。