稼げる副業でお小遣いを稼ぐ方法

稼げる副業でお小遣いを稼ぐだけじゃなく、料理や映画アニメ、趣味などメモにも使っているブログ

副業で稼ぐ仕組みの作り方

Custom Field Suiteのサブループ内で未入力の内容のみを非表示にする方法

投稿日:2022年7月30日 更新日:

ワードプレスでCFSのサブループ(ループ内ループ)でトラブルが発生しました。

はじめに

ワードプレスのプラグインCustom Field Suiteを使用してカスタムフィールドを取得しているのですが、未入力の情報は取得しないと言う内容がサブループ内でする方法をご紹介いたします。

注意事項

カスタムフィールドの呼び出しに気を付けてください

やりたい事

今回はtableで情報を表示させたいのですが、クライアント様側で入力した内容は表示、未入力の場合は表示させないの2パターンを考えなければいけません。

表示させたい場合

<table>
<tr>
<th>メニュー名</th>
<td>金額</td>
</tr>
<tr>
<td colspan="2">説明分が入ります</td>
</tr>
</table>

表示させたくない場合

<table>
<tr>
<th>メニュー名</th>
<td>金額</td>
</tr>
</table>

簡単そうに見えて解決するのに非常に時間がかかりました。

つまずいた内容

Custom Field Suiteの表示と分岐の入力がない場合の分岐にも書かせて頂きましたが、非表示させたい内容の箇所を

<?php if(get_post_meta($post->ID,'カスタムフィールド名',true)): ?>
<tr>
<td colspan="2">
<?php echo $cfs->get('カスタムフィールド名'); ?>
</td>
</tr>
<?php endif; ?>

こういった形で表示させれば問題ないかなと思いましたが「何故かサブループ(ループ内ループ)ではget_post_metaが使用できなかった」です。

解決方法

2-3時間ほどググってわかった内容ですが、以下の通りにすると解決しました。
念のため全体を見ながらの方がわかりやすいです。

<?php
$fields = $cfs->get('親ループ');
foreach ((array)$fields as $field) {	

	echo '<h2>'.$field['タイトル'].'</h2><table>';

    $fieldloops = $field['子ループ'];
    foreach ($fieldloops as $fieldloop) {

	echo '<tr><th>'.$fieldloop['メニュー名'].'</th>';
	echo '<td>'.$fieldloop['価格'].'</td></tr>';
	
$subloop = $fieldloop['説明'];
if($subloop) :
echo '<tr><td colspan="2">'.$fieldloop['説明'].'</td></tr>';
endif;
    }
	echo '</table>';
}
?>

こういった記載方法だと未入力の情報に関しては非表示にする事が出来ました。
注意点としてはカスタムフィールドの呼び出しを$field[”]と$fieldloop[”]の2種類使っている事でしょうか。

以上でCustom Field Suiteのサブループ内で未入力の内容のみを非表示にする方法の説明を終了致します。

さいごに

今回もGoogleさんに助けられました

色々な技術的なブログを拝見させて頂きましたが、ほとんどがCustom Field Suiteの表示と分岐の入力がない場合の分岐に書かれている事で止まってしまっていました。

ブログを書いている人はさらに前に進んだカスタマイズをしていない方が多いんでしょうね。

-副業で稼ぐ仕組みの作り方
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

さくらサーバーにドメインを移す【移管方法】申込み

前回に引き続きドメインの移管方法についてになります。 関連記事: シーサーブログにメニューを作る方法 サクラサーバーに転入する方法2015 さくらサーバーにドメインを移す【移管方法】準備 ムームードメ …

カスタムフィールドを簡単に導入出来るAdvanced Custom Fields

カスタムフィールドって使ってみたいけど、どうやって使えば良いのかわからないなんてことありませんか?私自身も何となくでしか理解していませんでしたがこのプラグインを導入する事で簡単に導入する事が出来ました …

Gmailでメールの配信エラーを解消する方法

ある日急にGmailからのメールが「メールの配信エラー」と出て送信できなくなった時の対処法をご説明いたします。 関連記事: ECCUBE3をさくらにインストールしたよ Gmailとサクラのメールの連携 …

WP-Membersのインストールと設定方法

ワードプレスを使った会員制サイトを作るならWP-Membersと言うプラグインがあれば非常に簡単に制作する事が出来ます。 関連記事: ワードプレスでメルマガが使えるSubscribe2 会員制サイトが …

ECCUBE4のメンテナンスモード画面を編集する

ECCUBE4のデフォのメンテナンスモード中の画面で結構質素ですよね 関連記事: カスタムフィールドで画像を出力する時のヒント【ワードプレス】 ワードプレスのメンテナンスモード ワードプレスの分岐to …