サポート » テーマ » 複数のカスタム投稿のサイドーバー設置について

  • 複数のカスタム投稿サイドバーを作成しました。
    そのカスタム投稿毎のサイドバーを表示させたいのですが、
    なかなかうまくいきません。
    具体的に説明すると

    カスタム投稿「New」のページには
    Newsの最近の投稿、カテゴリ カレンダー

    カスタム投稿「blog」ぺーじには
    blogの最近の投稿 カテゴリ カレンダー
    と別々に表示したいです。

    何卒よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • q-comさん

    > 複数のカスタム投稿サイドバーを作成しました。

    これは具体的に、どのような実装をされていますか?
    カスタム投稿「News」「blog」で別々にテンプレートファイル(sidebar-***.php)を作ったのか、それとも functions.php でウィジェットを定義されたのか……そのあたりの現況を書き添えてくださると、回答が得られやすいかもしれません。

    トピック投稿者 q-com

    (@q-com)

    teckingさん、コメントありがとうございます。

    複数のブログを設定したく、functions.phpにてカスタム投稿を作成しました。
    ただその場合、ウィジェットを使用すると、
    月別アーカイブやカレンダー、カテゴリが、「投稿(post)」のものを反映してしまい、
    カスタム投稿のものを表示できません。
    できればウィジェットで定義ができれば一番良いのですが、
    やり方がわからなかったため、(sidebar-***.php)にて条件分岐させて
    表示させようかと思いましたが、どうもうまくいきません。
    ご教示いただけるとありがたいです。

    実装の方法はいろいろあるとおもいますので、一案として。

    通常 sidebar.php は

    <?php get_sidebar(); ?>

    で読み込みますが

    <?php get_sidebar('foo'); ?>

    とすると sidebar-foo.php を読み込んでくれるので

    • sidebar.php
    • sidebar-news.php
    • sidebar-blog.php

    をつくったうえで single.php などで

    <?php
    $post_type = $post -> post_type;
    switch ($post_type) {
    	case 'news':
    		get_sidebar('news');
    		break;
    	case 'blog':
    		get_sidebar('blog');
    		break;
    	default:
    		get_sidebar();
    }
    ?>

    と書けば切り分けできるのでは、とおもいます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「複数のカスタム投稿のサイドーバー設置について」には新たに返信することはできません。