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

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

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

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

関連記事

日付の分岐を簡単に導入する方法

これでオートメーション化が捗ります 関連記事: カスタムフィールドで画像を出力する時のヒント【ワードプレス】 カスタムフィールドを使って計算 WordPress PHPでechoとprintの違いにつ …

コンタクトフォーム7からの迷惑メールを防ぐ方法

コンタクトフォーム7を入れたけど、今度はここから迷惑メールが来ることが増えます。迷惑メールをブロックする方法を紹介いたします。 関連記事: スパムコメントを自動で削除してくれるAkismet ワードプ …

アップロード済み画像を簡単にリサイズする方法WordPress

この画像リサイズしたいけど再アップロードもめんどくせぇな・・・ はじめに 数年前から書いているブログの画像を出来れば全部リサイズしたいな・・・でも、枚数が数百枚単位だからぶっちゃけ面倒すぎるって人にお …

スマホでアクセスした時だけ違う内容を表示させる方法

スマホとパソコンだと広告サイズが違うのでそれぞれ違う物を表示させたい時のテクニックをご紹介いたします。 関連記事: カスタムフィールドで画像を出力する時のヒント【ワードプレス】 ワードプレスの分岐to …

【Xサーバ】hostsの設定で動作確認

前回Xサーバの動作確認URLで実際の動作が確認できませんでしたが、hostsの設定で確認できますよ。 関連記事: 自動相互リンクの作り方 Yahoo!ショッピングの設定方法Step1の詳しい説明 シー …