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

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

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

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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

HEIC形式を簡単にjpgにする方法

web上でクッソ簡単にjpgに戻せました 関連記事: ネスタリゾートを100%遊びたい人へ【宿泊あり】 [2020年]百度baiduアカウントを日本から作る方法 iPhoneで動画をDLしてカメラロー …

アリエクスプレスで注文をキャンセルする方法

アリエクスプレスで商品を購入後に、やっぱり必要ないなと思ってキャンセルしたい人もいらっしゃるでしょう。 関連記事: Yahoo!ショッピングの設定方法Step1の詳しい説明 エックスサーバーからさくら …

お名前.comのドメインをさくらサーバーで使用する方法

サーバーの最安値とドメインの最安値を一緒に利用出来ます 関連記事: サクラで日本語ドメインを使う方法 お名前.comでドメインを取得する方法 サクラサーバーに転入する方法2015 お名前.comのWh …

Shopifyの支払い方法に銀行振込を追加してみた

Shopifyの支払い方法にはデフォルトで銀行振込がありません。 関連記事: 【ゆうちょ】アリエクのアフィリエイト報酬を受け取りました ネスタリゾートを100%遊びたい人へ【宿泊あり】 Yahoo!シ …

さくらサーバーにドメインを移す【移管方法】準備

ドメインを初めて移す方は不安ではありませんか?今回はさくらサーバーへの移管方法を詳しく説明させて頂きます。準備編になります。 関連記事: さくらサーバーにドメインを移す【移管方法】申込み カスタムフィ …