Lab.

【備忘録】【WordPress】Custom Field Suiteの$cfs->getについて

仕事で1ヶ月半にわたり、Wordpressで、カタログサイトを作成しました。そのなかでCustom Field Suiteで登録したデータを引き出すのに苦労したので、忘れないうちに。

まず、カスタム投稿のページなどでは、テンプレートコードで値が引けてました。

こんなやつね

 $cfs->get('Loopfiled名');

<?php
$values = $cfs->get('Loopfiled名');
foreach (($values) as $value) :
?>

<?php echo $field['filed名']; ?>

<?php endif;?>

でpost_idから値を引こうとして書いたのが以下。まったく引けなくなる。原因わからず。
そこで、プラグインのオフィシャルサイトをみてたら、$cfs->getの扱い方のページを発見。

post_idを指定して値を引く場合

CFS()->get($field_name, $post_id, $options);

$cfs->get

CFS()->get

なにがちがうか良くわからないですが、これでうまくいきました。
良く見ていくと、普通にループとかでも使えるんじゃん?トップページのやつとなにが違うの?
とりあえず、出力のバリエーションをメモットク。

単純にフィールドの値を引く

<?php echo CFS()->get('Loopfiled名'); ?>


単純にフィールドの値を引く

<?php echo CFS()->get('filed名'); ?>


特定の記事(post_id)のカスタムフィールドの値を引く

<?php echo CFS()->get('filed名', $post_id); ?>


カスタムフィールドスイートのループの値を引く

<?php
$loops = CFS()->get('Loopfiled名');
foreach ( $loops as $loop ) {
    echo $loop['filed名'];
}
?>

う~ん。なんでトップページは$cfs->getで、解説では、CFS()->getなの?

しかし、wordpressのデータってすごいことになってるって改めておもった。

ためしに、下記のようなものを書いて表示させてみると、すごいことになる。一項目だすだけで、どんだけ無駄なデータを引いてるの?っておもうけど、まあしょうがないよね。
<?php $values = CFS()->get('Loopfiled名');?>
<?php var_dump($values);?>

related article