🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

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

PHP

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

Q&A

解決済

3回答

619閲覧

【PHP】投稿毎に選択するカテゴリーによってリンクの表示内容を切り替えたい

hirominx

総合スコア0

WordPress

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

PHP

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

0グッド

1クリップ

投稿2021/02/18 06:15

編集2021/02/20 14:49

当方PHP初学者です。
現在WordPressのカスタム投稿でCMSを構築しています。

アーカイブページに表示されるリンクを、投稿毎に選択したカテゴリーによって切り替える
といった実装がしたいのですが、なかなかうまくいかず困っております。

具体的にやりたいこと

①投稿ページで「member_ltd」というカテゴリーを選択して投稿した場合、「会員限定」というリンク(※カスタムフィールドで生成)を表示する

②それ以外のカテゴリーを選択して投稿した場合は、「詳細を見る」というリンク(※投稿ページのURL)を表示する

カテゴリの選択によって①と②を切り替えるという実装が希望です。

  • WordPressバージョン: 5.6.1
  • 実装したい場所:アーカイブページ(archive-○○.php)
  • カテゴリを選ぶ場所はカスタム投稿ページ(single-○○.php)で作成しています

該当のソースコード

<?php if ( in_category('member_ltd') ) ://会員限定カテゴリーを選んだ場合 ?> <a href="<?php the_field('movie_button_limited');?>" target="_blank">会員限定</a> <?php else://他のカテゴリーを選んだ場合 ?> <a href="<?php the_permalink();?>">詳細を見る</a> <?php endif; ?>

試したこと

if文の関数(in_category)を変える

get_taxonomy ←どのカテゴリでも「詳細を見る」しか表示されない
get_term ←どのカテゴリでも「詳細を見る」しか表示されない
get_cat_ID ←どのカテゴリでも「詳細を見る」しか表示されない
get_the_ID ←どのカテゴリでも「会員限定」しか表示されない

何か定義が必要なのか
追記すべきコードがあるのか
関数が間違っているのか、、、

当方PHP初学者のため見当がつかず大変困っております。ぜひご教示いただけますと幸いです。

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

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

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

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

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

guest

回答3

0

自己解決

ご教示いただいた策で解決できずだったのですが、別のテンプレートの記述方法を変えてみたら無事解決しました。この度はありがとうございました。

投稿2021/04/19 08:56

hirominx

総合スコア0

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

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

0

投稿2021/02/21 02:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/in_category

上記ドキュメントによれば下記のようになりそうすが。

php

1in_category('member_ltd')

他の方法

php

1$terms = get_the_terms( $post->ID, 'category' ); //既定の「カテゴリー」タクソノミー 2$flag = false; 3foreach ( $terms as $term ) { 4 if ($term->name == 'member_ltd') { //カテゴリの名前(スラッグは$term->slug) 5 $flag = true; 6 break; 7 } 8} 9if ( $flag ) { 10 // member_ltdの場合 11} else { 12 // それ以外 13}

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_the_terms

投稿2021/02/18 13:01

編集2021/02/21 09:39
yuki84web

総合スコア1857

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

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

hirominx

2021/02/20 14:46

ご回答ありがとうございます。 上記も試してみたのですが、解決されずでした、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問