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

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

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

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

関連記事

Yahoo!ショッピングの設定方法Step2-3の詳しい説明

Step2に入ったら結構楽ちんやわ 関連記事: Yahoo!ショッピングの設定方法Step1の詳しい説明 Yahoo!メールを複数取得する方法 エックスサーバーからさくらサーバーにドメインを移管してみ …

ECキューブの管理画面で商品画像がグレー

登録している商品を調べようとしたら商品画像が全てグレーの塗りつぶしになっていたので解決方法をご紹介いたします。 関連記事: 【EC-CUBE】管理画面に色々な箇所のファイルを呼び出す方法 ネスタリゾー …

インストールが一瞬で出来るファイルマネージャー

テスト環境を整える時にFFFTPでアップロードするのは時間がかかりすぎますよね 関連記事: 自動相互リンクの作り方 Yahoo!ショッピングの設定方法Step1の詳しい説明 シーサーブログのトップペー …

ワードプレスの分岐topページのみやその他表示

ワードプレスの表示・非表示の分岐っていつも忘れてしまうんですよね 関連記事: カスタムフィールドで画像を出力する時のヒント【ワードプレス】 カスタムフィールドをor条件で表示させる Googleアドセ …

ワードプレスのfeedが取得できない原因はプラグインかも

ワードプレスのfeed情報が表示されない時は、プラグインが原因かもしれません。 関連記事: アフィリエイト用リンクをクリックされやすくするテクニック データベースのバックアップ用プラグインWP-DBM …