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

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

詳細はこちら
PHP

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

Q&A

1回答

579閲覧

【WordPress・PHP】投稿のカテゴリーに応じて定型文を記事下に出力したいです。

soraoku

総合スコア1

PHP

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

0グッド

1クリップ

投稿2021/01/22 10:04

前提・実現したいこと

WordPressで投稿のカテゴリーに応じて、記事下に定型文を表示させたいのですが、
現状だと、カテゴリーが増えたり減ったりすると大変になってしまうので、
簡潔に書く方法はありますでしょうか?

発生している問題・エラーメッセージ

コードが長すぎる

該当のソースコード

【single.php】 <?php if( in_category('1') && in_category('2') && in_category('3') && !in_category('4') ) : ?> 1,2,3選択時 <?php elseif( in_category('1') && in_category('2') && in_category('4') && !in_category('3') ) : ?> 1,2,4選択時 <?php elseif( in_category('1') && in_category('3') && in_category('4') && !in_category('2') ) : ?> 1,3,4選択時 <?php elseif( in_category('2') && in_category('3') && in_category('4') && !in_category('1') ) : ?> 2,3,4選択時 <?php elseif( in_category('1') && in_category('2') && in_category('3') && in_category('4') ) : ?> 1,2,3,4選択時 <?php elseif( in_category('1') && in_category('2') && !in_category(array('3','4')) ) : ?> 1,2選択時 <?php elseif( in_category('1') && in_category('3') && !in_category(array('2','4')) ) : ?> 1,3選択時 <?php elseif( in_category('1') && in_category('4') && !in_category(array('2','3')) ) : ?> 1,4選択時 <?php elseif( in_category('2') && in_category('3') && !in_category(array('1','4')) ) : ?> 2,3選択時 <?php elseif( in_category('2') && in_category('4') && !in_category(array('1','3')) ) : ?> 2,4選択時 <?php elseif( in_category('3') && in_category('4') && !in_category(array('1','2')) ) : ?> <?php elseif( in_category('1') && !in_category(array('2','3','4')) ) : ?> 1選択時 <?php elseif( in_category('2') && !in_category(array('1','3','4')) ) : ?> 2選択時 <?php elseif( in_category('3') && !in_category(array('1','2','4')) ) : ?> 3選択時 <?php elseif( in_category('4') && !in_category('1','2','3')) : ?> 4選択時 <?php endif; ?> ### 試したこと 現状全パターンの条件分岐を書いています。 ### 補足情報(FW/ツールのバージョンなど) 記事が属しているカテゴリを配列で取得、 比較して、それに応じた定型文を吐き出す。という感じで修正したいです。

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

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

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

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

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

guest

回答1

0

それが必要ならそうするしかないと思いますが…
とりあえず、短く書く方法

php

1<?php 2$ar = [ 3 0=>"未選択", 4 1=>"1選択時", 5 2=>"2選択時", 6 3=>"1,2選択時", 7 4=>"3選択時", 8 5=>"1,3選択時", 9 6=>"2,3選択時", 10 7=>"1,2,3選択時", 11 8=>"4選択時", 12 9=>"1,4選択時", 13 10=>"2,4選択時", 14 11=>"1,2,4選択時", 15 12=>"3,4選択時", 16 13=>"1,3,4選択時", 17 14=>"2,3,4選択時", 18 15=>"1,2,3,4選択時"]; 19$x = 0; 20if (in_category('1')) $x + 1; 21if (in_category('2')) $x + 2; 22if (in_category('3')) $x + 4; 23if (in_category('4')) $x + 8; 24echo $ar[$x]; 25?>

投稿2021/01/22 11:15

takasima20

総合スコア7460

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問