特定カテゴリーの一覧にのみサムネイルを表示させたい

Simplicityの特徴 フォーラム テーマファイルのカスタマイズに関する質問など 特定カテゴリーの一覧にのみサムネイルを表示させたい

このトピックには8件の返信が含まれ、1人の参加者がいます。5 ヶ月前 tac さんが最後の更新を行いました。

  • 投稿者
    投稿
  • #59982

    tac

    お世話になっております。
    初めてカスタマイズに挑戦しています。

    一覧リストのスタイルとしてエントリーカードを使っています。
    あるカテゴリーの投稿にはアイキャッチ画像を用意していますが、
    他のカテゴリーの投稿は文章のみで、アイキャッチ画像がありません。
    そこで、サムネイル表示のデフォルト設定をなしにしておき、
    特定カテゴリーの投稿一覧を表示する場合のみサムネイルを表示させたいと考えています。

    比較的容易に実現できそうであれば、方法をご教示いただけますでしょうか。

    (サムネイル表示設定のチェック有無による分岐箇所へ、
    is_categoryによる条件を追加できるのであれば簡単だろうと思ったのですが、
    どこでその処理が行われているかが理解できず、試せていません。)

    WordPress 4.9.5
    Simplicity2 バージョン: 2.6.7
    Simplicity2 child バージョン: 20161002

    以上、よろしくお願い申し上げます。

  • #59983

    かうたっく

    もしかしたらCSSだけでもイケそうな気がします。URLがないので説明だけですが。

    トップページのエントリーカードだけを全て非表示にして、もし画像領域とタイトルなどの領域に余白があるなら詰める。

    該当カテゴリの boey class=”ここにカテゴリ特有のclass名” この該当カテゴリ特有のidかスラッグなどが入ったclass名を指定して、余白を戻し画像を表示させる。

    この順番でCSSを読み込ませたら、アップデートに影響しないと思います。2ページ目以降を確かめて問題なければそのCSSは正しいかと思われます。試してませんが。。

  • #59984

    かうたっく

    サムネイル表示設定のチェック有無による分岐箇所へ、
    is_categoryによる条件を追加できるのであれば簡単だろうと思ったのですが、
    どこでその処理が行われているかが理解できず、試せていません。

    list.phpを確認しました。

    //エントリーカードか、大きなサムネイルカードの場合
    //一覧表示スタイルがカードor大きなサムネイルカード表示の場合
    get_template_part_card(‘entry-card’);
    }

    この記載があるので、entry-card.phpですね。子テーマ側に導入すれば万が一エラーが出たとき子テーマentry-card.phpを削除すれば復元できそうですが、ローカルで試してからの方が安心ですね。

  • #59993

    Akira

    no image の画像が不要なのでは?と思ったので、 no image 画像を非表示にする方法はどうでしょうか?

    img.list-no-image {
      display: none;
    }

    CSS のみでできるので、もっとも簡単です。

  • #60000

    tac

    かうたっく様、Akira様、ありがとうございました。

    #59983 の方法は、今の私の力では手に余りそうなので、
    #59993 の方法を採用させいていただきました。

    そのままstyle.cssに加えるだけでは
    左にサムネイルが入るはずのスペース空いてしまいますが、
    後日CSSで調整してみます。
    (別に変ではないので、そのまま使うかもしれません。)

    #59984 についてですが、
    サムネイル表示設定を有にしているかどうかで処理を分けているのは、
    entry-card.php内の(または別のファイルの)どの部分でしょうか。
    ご存知なら教えていただけると幸いです。
    (おかげさまで、やりたかったことはほぼ実現できましたので、
    深追いになりそうであれば、このまま打ち切っていただいて結構です。)

  • #60001

    Akira

    サムネイル表示設定を有にしているかどうかで処理を分けているのは、entry-card.php内の(または別のファイルの)どの部分でしょうか。

    テーマ設定の「サムネイル表示」を処理しているのは、 css-custom.php の 327 行目( Simplicity 2.6.7 の場合)です。有効にすると、 CSS で非表示になります。

    サムネイルがあるかどうかを判別しているのは、 entry-card-large.php か entry-card.php です。

    一覧リストのスタイルの「 大きなエントリーカード」と「最初だけ大きなエントリーカード」は、 entry-card-large.php 。その他の一覧リストのスタイルは、 entry-card.php です。

    いずれでも has_post_thumbnail() と書かれている部分が、サムネイルがあるかどうかを判別している箇所です。

    あと、 is_category では、ご希望のカスタマイズはできないと思います。 is_category は、カテゴリーアーカイブの条件分岐をするものですので。

    カスタマイズをされるのなら、下記のように条件分岐をします。(カテゴリー id が 10 の場合)

    $cat    = get_the_category( $post->ID );
    $cat_id = $cat[0]->cat_ID;
    
    if( $cat_id === 10 ) {
        処理を書く
    }
  • #60002

    Akira

    1 ヶ所間違えている箇所がありました。

    テーマ設定の「サムネイル表示」を処理しているのは、 css-custom.php の 327 行目( Simplicity 2.6.7 の場合)です。有効にすると、 CSS で非表示になります。

    正しくは、「サムネイル表示」を無効(チェックを外す)にすると、 CSS で非表示になります。

  • #60004

    Akira

    HTML をよく見てみると、 article タグにカテゴリースラッグが付いていました。こいつを使えば、サムネイルがない時に左にスペースができません。

    テーマ設定より「サムネイル表示」をオフにしておいて、下記の CSS を指定します。

    .category-カテゴリースラッグ名 figure {
      display: block;
    }

    カテゴリースラッグ名は、ご変更ください。

  • #60005

    tac

    Akira様
    ありがとうございます。

    #60001 の方法で試してみました。
    css-custom.phpのサムネイル表示を消す部分の条件を
    「サムネイルの設定が表示なし、又は、カテゴリー6でない」
    に変更することで、当初考えていた動作も実現できました。

    変更前

    <?php //サムネイル表示
    if ( !is_thumbnail_visible() ):
    $thum_a_coler = ( $link_color ? $link_color : LINK_COLOR); ?>

    変更後`
    <?php //サムネイル表示
    $cat = get_the_category( $post->ID );
    $cat_id = $cat[0]->cat_ID;
    if ( !is_thumbnail_visible() or !( $cat_id === 6 ) ):
    $thum_a_coler = ( $link_color ? $link_color : LINK_COLOR); ?>`

    ここまで投稿しようとして、
    #60002 と #60004 が追加されていることに気付きました。
    せっかくご教示いただいたので、#60004 の方法も、後で試してみます。

    ありがとうございました。
    (本投稿は解決済みとしていただいて結構です。)

トピック「特定カテゴリーの一覧にのみサムネイルを表示させたい」への新規返信追加は締め切られています。

スポンサーリンク
アドセンス(大)
アドセンス(大)