カスタム投稿タイプにも、ページデザイン(Postに設定したカスタム内容)する方法

8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • 投稿者
    投稿
  • #5644
    小川 明郎
    参加者

    こんにちわ。京都でデザインの仕事をしています小川といいます。
    カスタム投稿タイプでは、ページデザイン(Postに設定したカスタム内容)が反映されませんよね。意図的なのかもしれないのですが、デフォルトは反映される方がいいのかなと思いました。

    具体的には、is-output-page-header.php 内の場合分けに

    } elseif ( is_singular() && in_array( get_theme_mod( ‘page-eyecatch’ ), $valid_choices ) ) {
    $return = true;

    と追記するのがいいと思うのですが、いかがでしょうか。

    #5648
    小川 明郎
    参加者

    自分で書いておいてなんなのですが…

    やはりカスタム投稿タイプはその目的の通り、Postとは別の方がいいのでしょうか。
    もしできるなら、カスタマイザーで調整できたら便利と思いましたが、わざわざカスタム投稿タイプ作るような人には不要という判断が、正しいように思いました。

    そのように思う一方で、Snow Monkey の便利な機能は適宜使いたいなぁ(目次、関連記事、autohrの情報など)という欲張りな気持ちも湧いてきます。

    #5654
    キタジマ タカシ
    キーマスター

    これについては過去にこのフォーラムでも話題にあがったりしたのですが、ご想像の通り、「わざわざカスタム投稿タイプ作るような人には不要」ということが多いのかなという判断でそのようにしています。

    子テーマをお使いであれば、子テーマにカスタム投稿タイプ用のテンプレートを追加することで投稿と同じ見た目で表示することが可能です。

    例えば、カスタム投稿タイプが news だったとして、

    /子テーマ/templates/view/content-news.php を作成
    (※ Snow Monkey では「/templates/view/」の中のテンプレートのことを「ビューファイル」と呼んでいます)

    その中身に、

    <?php
    get_template_part( 'templates/view/content-post' );
    #5737
    小川 明郎
    参加者

    viewとしてPost用のファイルをnews(カスタム投稿タイプ)に読み込み、同一にするということですね。ありがとうございます。

    それとは異なるケースで、カスタム投稿タイプでhtmlは独自にしつつも、Postと同じeye catch 部分を使い、かつ それをパララックス表現(全幅表現)にしたい場合や目次機能を使いたい。

    そういうケースでは、以下の箇所からif文を外して表示させるのが良いでしょうか?

    52行目
    
    if ( 'content-top' === get_theme_mod( 'post-eyecatch' ) ) {
    get_template_part( 'template-parts/eyecatch' );
    }
    
    if ( get_option( 'mwt-display-contents-outline' ) ) {
    get_template_part( 'template-parts/contents-outline' );
    }
    
    #5742
    キタジマ タカシ
    キーマスター

    そうですね。この if はカスタマイザーでオンオフしたものを反映させるために書いているものなので、そこは無視して常に表示させるのであれば if は消す形になりますね。

    #5822
    小川 明郎
    参加者

    ありがとうございます。
    トライしてみました。
    CSSを当てられず、単にthe_content()出力前にアイキャッチが表示されちゃうという状態になりましたが
    一歩前進です。トピックを閉じます。

    #5826
    キタジマ タカシ
    キーマスター

    あ、多分勘違いしてたかもです!アイキャッチをヘッダーにバーンとだしたい感じでしょうか?コンテンツの中身を投稿と同じにしたいのだと早とちりしてしまいました。

    ヘッダーにバーンとだしたいのでしたら、前に書かれていたように、snow_monkey_is_output_page_header() のカスタマイズで対処することになります。

    子テーマの functions.php に下記のコードを記述してみてください。

    /**
     * カスタム投稿タイプ「news」の場合はページヘッダーを表示
     */
    add_filter( 'snow_monkey_is_output_page_header', function( $return ) {
      if ( is_singular( 'news' ) ) {
        return true;
      }
      return $return;
    } );

    ちなみに、Snow Monkey はアイキャッチの表示方法が次の3つから選べるようになっているのですが、

    • ページヘッダー
    • ページヘッダーの上にタイトルを表示
    • コンテンツの上

    get_template_part( 'template-parts/eyecatch' ); はこのうち「コンテンツの上」にあたるものになります。

    #6512
    小川 明郎
    参加者

    まさにそこでした。
    なるほど、投稿タイプごとに いろんなフィルターフックを上書き定義し直せばいいですね。
    ありがとうございます。お礼まで。

8件の投稿を表示中 - 1 - 8件目 (全8件中)
  • トピック「カスタム投稿タイプにも、ページデザイン(Postに設定したカスタム内容)する方法」には新しい返信をつけることはできません。