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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

WordPress

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

PHP

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

Q&A

解決済

1回答

837閲覧

if で得た複数の値を並列で出力したい

j123

総合スコア15

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/07/02 15:41

if で得た複数の値を並列で出力したい

Wordpressでショートコードを作成したのですが、
ショートコードを多く使用しすぎるとエラーが起きやすいとのことで、
複数作ったショートコードをまとめたく思っています。

具体的には、複数のショップURLのショートコードを一つにまとめたく、
以下のような記述をfunctions.phpに作ったのですが、
一つしか表示されてくれません。。

(urlA, urlB, urlC にはきちんと情報は引っ張ってこれています。)

PHP

1function urlbox_shortcode(){ 2 $urlStoreA = get_post_meta(get_the_ID(), 'urlA', true);//Aストア 3 $urlStoreB = get_post_meta(get_the_ID(), 'urlB', true);//Bストア 4 $urlStoreC = get_post_meta(get_the_ID(), 'urlC', true);//Cストア 5 if (!empty($urlStoreA)){//もし空でなければ 6 return '<a href="' . $urlStores . '">A で購入する</a>'; 7 } 8 if (!empty($urlStoreB)){//もし空でなければ 9 return '<a href="' . $urlAmazon . '">B で購入する</a>'; 10 } 11 if (!empty($urlStoreC)){//もし空でなければ 12 return '<a href="' . $urlStoreC . '">C で購入する</a>'; 13 } 14} 15add_shortcode( 'url_box', 'urlbox_shortcode' ); 16

色々「if 複数 まとめる」等を検索して読みまくってるのですが、
同じようなものが見つからず、質問させていただいた次第です。

おそらく基礎的なところがわかってないのかと思うので、
何が間違っているのでしょうか?

お恥ずかしいレベルのことかと思いますが、
教えていただければ幸いです。

よろしくお願いいたします。

補足情報

WordPress バージョン 5.7.2

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

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

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

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

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

guest

回答1

0

ベストアンサー

return したらそこで終わりですよ?

現在はどんなかんじのコードになっているのでしょうか。
--- 追記 ---
個別に使うならこんなかんじでしょか。

php

1function urlbox_shortcode($atts){ 2 extract(shortcode_atts(array('store' => 'A'), $atts)); 3 $stores = ['A'=>'urlA','B'=>'urlB','C'=>'urlC']; 4 $urlStore = get_post_meta(get_the_ID(), $stores[$store], true); 5 if (!empty($urlStore)){//もし空でなければ 6 return '<a href="' . $urlStore . '">' . $store . ' で購入する</a>'; 7 } 8} 9add_shortcode( 'url_box', 'urlbox_shortcode' );
[url_box store="A"]

--- 追記 ---
あー、まとめて返すならこんなかんじかな。

php

1function urlbox_shortcode(){ 2 $urlStoreA = get_post_meta(get_the_ID(), 'urlA', true);//Aストア 3 $urlStoreB = get_post_meta(get_the_ID(), 'urlB', true);//Bストア 4 $urlStoreC = get_post_meta(get_the_ID(), 'urlC', true);//Cストア 5 $s = ''; 6 if (!empty($urlStoreA)){//もし空でなければ 7 $s .= '<a href="' . $urlStores . '">A で購入する</a>'; 8 } 9 if (!empty($urlStoreB)){//もし空でなければ 10 $s .= '<a href="' . $urlAmazon . '">B で購入する</a>'; 11 } 12 if (!empty($urlStoreC)){//もし空でなければ 13 $s .= '<a href="' . $urlStoreC . '">C で購入する</a>'; 14 } 15 return $s; 16}

投稿2021/07/02 20:27

編集2021/07/02 21:29
takasima20

総合スコア7464

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

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

j123

2021/07/03 05:35

takasima20さん、 ありがとうございます! >return したらそこで終わりですよ? そういうことだったのですね。。 ただそれがわかったとしても、教えていただいた答えには辿り着けていなかったと思いますので、感謝感謝です。。 無事希望通りの動作を得ることができました。 2つも方法教えて頂いたので、 これを色々なところに応用して使っていきたいと思います! ありがとうございました!! 本当に助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問