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

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

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

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

PHP

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

Q&A

1回答

2088閲覧

条件分岐でカスタムフィールドの値の配列化

akiyum

総合スコア29

WordPress

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

PHP

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

0グッド

0クリップ

投稿2015/03/21 07:44

WordPressのカスタムフィールドで、いずれかの値が入っていない時でないと出力しないという内容を記述しています。
現状

lang

1<?php if(get_post_meta('フィールド1') || get_post_meta('フィールド2') || get_post_meta('フィールド3')) : ?> 2〜内容〜 3<?php endif; ?>

のようにしているのですが
冗長な感じがするので、もっとスマートな書き方ができないか悩んでます。
ご教授いただければ幸いです。よろしくい願いいたします。

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

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

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

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

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

guest

回答1

0

WordPressは使ったことないですが、デザインと処理を分けたい人なので、俺ならこうします。
出力部には変数だけ渡して、なるべく余計なものは持ち込まない。先の例外の話ではないけれど、出力中に例外を発生させる(中断する)なんてもってのほかです。

lang

1<?php 2function any_one( $keys ) { 3 foreach ( $keys as $key ) if ( get_post_meta( $key ) ) return true; 4 return false; 5} 6..... 7$any_one = any_one( array( 'feild1', 'feild2', 'feild3' ) ); 8..... 9?> 10<!DOCTYPE html> 11..... 12<% if ( $any_one ) : %> 13... 14<% endif; %> 15

出力部でASPショートタグを利用してるのは XML 宣言とバッティングするのを避けるためです。

投稿2015/03/21 08:04

編集2015/03/21 08:12
miya

総合スコア81

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

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

akiyum

2015/03/22 05:28

ありがとうございます! 予めarrayに値を入れて if ( get_post_meta( $key ) をループ出力して複数条件式を出していく感じですかね。 ただこのやり方だと、“||”である論理演算子が入ってないからか うまく条件分岐ができませんでした。。 ↑僕の勘違いでしたらすみません もうちょっと自分で模索してみようと思います。 ご教授ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問