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

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

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

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

Q&A

解決済

2回答

205閲覧

Wordpress header.phpでemptyが動作しない

nishimura_toru

総合スコア15

WordPress

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

0グッド

0クリップ

投稿2019/07/12 04:35

編集2019/07/12 05:32

Wordpressで変数の中身が「0」の判定をしたくて

<?php $value = "0"; if (!empty($option_id)): ?> 中身は入っています <?php else: ?> 空です <?php endif; ?>

上記の記述をしました。

taxonomy.phpでは動作するのですが、header.phpに記述した場合、optionというタームの存在が有る無しに関わらず"空です"となってしまいます。

どうすればheader.phpでも動作するのでしょうか?

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

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

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

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

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

beginner_t

2019/07/12 05:09

「どの状況でも」というのは$valueの値を0以外にした場合ということでしょうか?
nishimura_toru

2019/07/12 05:13

ありがとうございます。 $valueの値は0のままです。 タームの存在がある場合でもない場合でも変わらなかったという意味でした。 解りずらい表現ですみません。
guest

回答2

0

php

1<?php 2$value = "0"; 3if (!empty($value)) { 4 echo "中身は入っています"; 5} else { 6 echo "空です"; 7} 8?>

emptyは「0」を常に空だと判定するので、

php

1$value = "0";

と書いているのであれば、「0」は空扱いなので、
空とでるのは正しい動作だと思います。

投稿2019/07/12 05:22

beginner_t

総合スコア716

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

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

nishimura_toru

2019/07/12 05:30

ありがとうございます。 すみません。 間違っていました。 実際は、 <?php $value = "0"; if (!empty($option_id)): ?> 中身は入っています <?php else: ?> 空です <?php endif; ?> optionいうタームが存在する場合でもheader.phpでは「空です」と表示されてしまいます。
beginner_t

2019/07/12 06:05 編集

taxonomy.phpでは<?php if(have_posts()): while (have_posts()):the_post(); ?>から始まるようなループ処理の中に書いていますか?
nishimura_toru

2019/07/12 06:02

ありがとうございます。 いいえ。<?php if(have_posts()): while (have_posts()):the_post(); ?>から始まるようなループ処理よりも上段に記述しています。
beginner_t

2019/07/12 06:09

taxonomy.phpを記載頂くことは可能ですか? 可能であれば追記をお願いします。
nishimura_toru

2019/07/12 08:54 編集

ありがとうございます。 このようになります。 よろしくお願いいたします。
beginner_t

2019/07/12 06:54

taxonomy.phpで <?php var_dump($play_option_id); ?> をすると何が返ってきますか?
nishimura_toru

2019/07/12 07:00

play_optionの子タームが存在する場合は「YES」、存在しない場合は「NO」が返ってきます。
beginner_t

2019/07/12 07:02

<?php var_dump($play_option_id); ?>の返り値がYESとかNOでしたか?
nishimura_toru

2019/07/12 07:04

間違えました。すみません。 NULL です。
nishimura_toru

2019/07/12 07:14

子タームが存在する場合は string(3) "449"と返ってきました。
nishimura_toru

2019/07/13 03:13

beginner_tさん。ありがとうございました。 おかげで原因を見つけることが出来ました。
guest

0

自己解決

グローバル変数の記述漏れが原因でした。

ありがとうございました。

投稿2019/07/13 03:11

nishimura_toru

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問