[wp]SmartCustomFieldsの繰り返し活用

ACFと同じ感じで使えばいいけど混同するとダメっていう。

SmartCustomFields

Smart Custom Fields
Smart Custom Fields はカスタムフィールドを管理するシンプルなプラグインです。

正直見づらい。色々付けていくとどこに何があるかわかりにくい。「メッセージ」で切り分けられるけど視覚的にはやっぱり弱いので、ACFみたいにタブで切り替えられたらいいのに、とか思う。

機能的には無料の範疇は超えてるんじゃないのってくらい、カスタムフィールドを扱う上で物足りないところは今のところない。

繰り返しの出力

<?php
$sample = SCF::get('sample'); 
if($sample):
?>
<h1>Sample</h1>
<ul>
<?php
    foreach($sample as $fields):
        $show = $fields['sample_show'];
        if($show):
            $img = wp_get_attachment_url($fields['sample_img']);
            $ttl = $fields['sample_ttl'];
            $detail = $fields['sample_detail'];
?>
<li><img src="<?php echo $img; ?>" alt="<?php echo $ttl; ?>"><p><?php echo nl2br($detail); ?></p></li>
<?php
        endif;
    endforeach;
?>
</ul>
<?php endif; ?>

ACFとの違い

繰り返しにおいて、ACFはwhile()SCFはforeach()で出力する。出力タグだけ入れ替えたらいいやって思うと痛い目にあう。

脳みそが疲れてくるとここの違いを忘れちゃう事があるので気をつけてください。

tips

注意点として、SCFには改行タグの補完機能はないので、出力時にこちらで整形する。逆に、入力内容にHTMLタグを付けてるけど出力時に外したい場合もphpの関数で対応できる。

//改行タグを補完
echo nl2br($example);

//HTMLタグを削除
echo strip_tags($example);

画像の出力についても、SCF側は出力内容を限定しないので出力側で何が欲しいかによって記述を変える。だけどまあ、個人的にはいつも画像のパスだけ拾って使ってるんで、全種類覚えなくてもいいやって感じ。

//画像パス
echo wp_get_attachment_url($image);

マニュアルとか解説記事を読むのが早いですね。

コメント

タイトルとURLをコピーしました