質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.35%

Wordpressで、archiveページの検索結果の表示を、「アーカイブ、カテゴリー」の場合と「タグ」の場合とで、別のCSSを適用させたい。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,075
退会済みユーザー

退会済みユーザー

■まず、archive.phpにこう①↓書いてあって、

<header class="page-header-tag">
  <?php
  the_archive_title();
  ?>
</header><!-- .page-header-tag -->


■次に、functions.phpにこう②↓書いてあります。

add_filter( 'get_the_archive_title', function ( $title ) {
  if( is_category('6') ) {
   $title = 'カテゴリーID「6」の記事一覧';
 } elseif( is_category() or is_tag() ) {
   $title = '【' . single_cat_title( '', false ) . '】に関する記事の一覧';
 }
  return $title;
});

参照サイト
https://www.imamura.biz/blog/22602



さて、ここから首記の質問です。

『「アーカイブ、カテゴリー」の検索結果と、「タグ」の検索結果とで、別のCSSを適用させたい』

と思っています。



上の②では、

『カテゴリーIDが「6」のアーカイブページの場合は「カテゴリーID「6」の記事一覧」という表示を、それ以外の「カテゴリー」「タグ」のアーカイブページは「【○○】に関する記事の一覧」という表示をさせるように変更する』

という操作をしているようなのですが、こうではなく、

『「カテゴリー、アーカイブ」には「①で付けた.page-header-tagとは別のタグ」をつけ直す』

という操作にしたいわけです。



①のように.page-header-tagではなく、アーカイブとカテゴリーには、②の操作によって.page-header-archiveとかまたは.page-header-categoryとかをつけ直して、①とは別のCSSを適用させたいんです。

しかし、②を変えることで、『タグをつけ直す』なんてこと、できるのでしょうか?
その場合、②のコードの、どこを直せばいいのでしょうか?

もしできなければ、ほかに首記の目的を果たせる方法はあるのでしょうか?

お詳しい方、いらっしゃいましたらよろしくお願いいたします。m(__)m

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

archive.phpの部分を下記のように分けてあげれば大丈夫だと思います。

<?php
  $className='';
  if(is_category()){
    $className='page-header-category';
  } else if(is_tag()){
    $className='page-header-tag';
  }
?>
<header class="<?php echo $className; ?>">

またfunction.phpの'add_filter('get_the_archive_title', 略)'はarchive.phpのthe_archive_title();の部分で呼び出されますのでこのタイミングではすでに<header class="page-header-tag">は処理済みなので無理だと思います。

他の方法としてはタグ一覧を表示する場合archive.phpよりもtag.phpの方が優先して呼びだされますので、archive.phpをコピーしてtag.phpにリネームarchive.phpのヘッダーのclassを修正するという方法もあります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/25 06:12 編集

    おはようございます。
    ご回答まことにありがとうございます。

    てきとーな場所に突っ込んだり、にのぴったり上書きしたり、いろいろやってみたのですが笑、検索結果の表示(質問文でいう○○のこと)がなくなってしまったようです。
    the_archive_titleがなくなったせいでしょうか?
    でも、なくすんですよね?

    そして、CSSでデザインしたタグの枠だけは残っています。
    CSSが残っているのはタグの検索結果だけで、アーカイブとカテゴリーの検索結果にはCSSさえも表示されません。

    もしよろしければ、
    ・ご回答のコードは、①のどこに書き加えるのか?
    ・function.phpは書き換えなくていいのか?
    ご教示いただければ幸いです。

    キャンセル

  • 2016/05/25 12:15

    できました!
    試行錯誤不足でしたし、それにより良い経験になりました。
    どうもありがとうございました💛

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • PHPに関する質問
  • Wordpressで、archiveページの検索結果の表示を、「アーカイブ、カテゴリー」の場合と「タグ」の場合とで、別のCSSを適用させたい。