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

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

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

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

PHP

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

Q&A

0回答

1062閲覧

配列に値が一つも入っていなかった場合、非表示にしたい

pontas

総合スコア54

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/05/07 12:44

編集2021/05/07 13:14

前提・実現したいこと

配列に値が一つも入っていなかった場合、非表示にしたいです。
emptyを試してみたのですが上手く動作しませんでした。
どなたかよい方法を教えていただけないでしょうか。

使用しているCMS:wordpress
プラグイン:Advanced Custom Fields
フィールドタイプ:Group 「data」

「data」の中身
フィールドタイプ:テキスト「txt」
フィールドタイプ:テキスト「txt2」
フィールドタイプ:テキスト「txt3」
フィールドタイプ:テキスト「txt4」
フィールドタイプ:繰り返しフィールド「list」
フィールドタイプ:繰り返しフィールド「list2」
フィールドタイプ:繰り返しフィールド「list3」

該当のソースコード

php

1<?php $data = the_field('data');?> 2<?php if(!empty($data)):?> 3<section> 4 空じゃない 5</section> 6<?php endif; ?> 7 8

var_dump「$data」の中身

■値が入っている場合 Array, 01, あああ, Array, 02, いいい, ArrayNULL ■空の場合 , , , , , , NULL

試したこと

以下でも試しました

<?php $data = the_field('data');?> <?php if(isset($data)):?> <section> 空じゃない </section> <?php endif; ?>

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

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

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

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

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

itagagaki

2021/05/07 12:59

WordPressですね? var_dumpの結果が変というか、たとえば配列なら array(3) { ... になるし、文字列なら string(5)”Hello” のようになるはずなんですが、本当に書かれたとおりですか?
pontas

2021/05/07 13:21 編集

はい、var_dumpに表示されているものを記載しました。 ワードプレスのAdvanced Custom Fieldsというプラグインのフィールドタイプ:Group を使用している為かvar_dumpの表示がおかしいのかもしれません。 最初下記のようにして出そうとしましたがこちらでもダメでした。 <?php if( have_rows('data') ):?> <section> 空じゃない </section> <?php endif; ?>
itagagaki

2021/05/07 13:23

var_dumpの結果がどうしてそうなるのかわからないんですよね…なので$dataの正体もわからない。 これだとどうなりますか? <?php $data = array(1,2,3); var_dump($data); $data = "1,2,3"; var_dump($data); ?>
itagagaki

2021/05/07 13:28

あ、あと、 $data = the_field('data'); の直後に echo gettype($data) . "\n"; もやってみてもらえますか?
pontas

2021/05/07 15:33

試してみた所下記のようになりました ①array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } string(5) "1,2,3" ②Array, 01, あああ, Array, 02, いいい, ArrayNULL
itagagaki

2021/05/07 16:02

var_dumpの結果が Array, 01, あああ, Array, 02, いいい, ArrayNULL gettypeの結果も Array, 01, あああ, Array, 02, いいい, ArrayNULL ???…うーん、なんでしょうこれ…
pontas

2021/05/08 03:02

色々考えてくださってありがとうございます。 他のサイトでも調べてみたいと思います
tabuu

2021/05/10 00:28

the_fieldではなくget_fieldではないですか? (return値は一緒かもしれませんが) 配列が空かどうかをチェックしたい理由を明記されれば別の回避策もでてくるかもしれませんよ。
pontas

2021/05/10 07:42

ありがとうございます。 確認してみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問