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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

526閲覧

Wordpress タグのカレントクラス追加について

koji0330

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/09/27 02:16

編集2022/09/27 03:37

初めまして。皆様にご質問です。
当方プログラミング初心者です。

Wordpressのオリジナルテーマを作成しているのですが、わからない箇所があり、
いくらググっても良い答えが出ずこちらに辿り着きました。。。

投稿一覧ページにタグで投稿をソートできるようにしています。
そのタグアーカイブにcurrent classを付与したいのですが、
どうしたら良いでしょうか?

現在は下記のようなコードです。

<?php $tags = get_tags(); foreach( $tags as $tag) { echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; } ?>

上記に単に何かを追加すれば良いのか、
それともfunction.phpなどに別途指示を出せば良いのか、
皆様のお知恵を頂戴できれば幸いです。

どうぞよろしくお願いします。

追記

カレントクラスの意図は、現在表示しているタグアーカイブに目印をつけたいということです。
添付の画像の「Tag01 ~ 05」が質問箇所です。各クリックでタグがついた記事がソートされてアーカイブされます。
選択したアーカイブにcssで装飾をつけたいのです。

イメージ説明

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/09/27 03:15

そもそもカレントクラスとはどういう意図でどういうものや機能を指して言っていますか?
CHERRY

2022/09/27 03:25

> そのタグアーカイブにcurrent classを付与したいのですが、 どのような状況の場合に 付与されるのでしょうか?
koji0330

2022/09/27 03:30 編集

m.ts10806さん。 ありがとうございます。 カレントクラスの意図は、現在表示しているタグアーカイブに目印をつけたいということです。 添付の画像の「Tag01 ~ 05」が質問箇所です。各クリックでタグがついた記事がソートされてアーカイブされます。 選択したアーカイブにcssで装飾をつけたいのです。 参考:https://www.sriproot.net/blog/current-navigation-1151
koji0330

2022/09/27 03:29

添付イメージ画像は解答欄に記載しました。 よろしくお願いします。
guest

回答1

0

ベストアンサー

参考にされた URL のように class="current"> をつけたいということですね。

使われているのテンプレートファイルは、何でしょうか。


タグということなので、 tag.phptag-xxx.php のような タグテンプレート と仮定して回答します。

おそらく 条件分岐タグis_tagを使って判定するのが簡単でしょうか。

使い方

<?php if ( is_tag($tag) ) /* 処理をする */; ?>

戻り値
アーカイブページが表示されている場合は true, それ以外は false。

たとえば、以下のような感じで条件判断して出力を出し分けるとどうなるでしょうか。

if( is_tag( $tag ) ) { echo '<li class="current"><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; } else { echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; }

投稿2022/09/27 06:14

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koji0330

2022/09/27 06:27

ありがとうございます! 打ち合わせで外出中ですので戻り次第試してみたいと思います。 ちなみにテンプレートはheader.phpに記述していました。
CHERRY

2022/09/27 08:51 編集

Template Hierarchy / テンプレート階層 ( https://developer.wordpress.org/themes/basics/template-hierarchy/ ) に記載されているように WordPress が呼び出すテンプレートは決まっているので、WordPress が最初に header.php を直接呼び出すことはないと思います。 header.php を呼び出す テンプレートは何ですか?
koji0330

2022/09/27 10:24

あ。すみません、。 archiveですかね。
koji0330

2022/09/27 10:29

何度もすみません。 下記で試してみたのですが、ダメのようでした。 書き方間違っておりますでしょうか? <?php $tags = get_tags(); foreach( $tags as $tag) { echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; } if( is_tag( $tag ) ) { echo '<li class="current"><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; } else { echo '<li><a href="'. get_tag_link($tag->term_id) .'">' . $tag->name . '</a></li>'; } ?>
CHERRY

2022/09/27 10:44 編集

条件判断は、 foreach ループの中に入れないと意味がないです。
koji0330

2022/09/27 11:25

無事実装できました! 何度もお手数おかけしました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問