2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Wordpressプラグイン、Smart Custom Fieldの使い方

Posted at

Wordpressプラグイン「Smart Custom Field」の使い方について、いつも参照している内容とリンクをまとめる。

なぜSmart Custom Field なのか

  • 無料で繰り返し機能が使える。
  • ソースベースでカスタムフィールドの内容を設定できる

Smart Custom Fieldの内容を表示させる

繰り返しの場合

<?php
  $info_array = SCF::get('group-post-info');

  // 該当ページ以外
  // SCF::get('group-shop-info', get_page_by_path('shop'));

  foreach($info_array as $info):
?>
  <?php if(isset($info['name']): ?>
    <p><?=$info['name'] ?></p>
  <?php endif; ?>
<?php endforeach; ?>

繰り返ししない場合

<?= $cf_sample = post_custom('cf_sample'); ?>

参考

Smart Custom Fields(SCF)でカスタムフィールドを出力する
Smart Custom Fieldを使ってカスタムフィールドを追加する

一覧表示


$args = Array(
            'post_type' => 'test',
            'posts_per_page' => -1,
            'meta_query' => array(array(
                                'key' => 'address',
                                'value' => '神戸市',
                                'compare' => 'LIKE'
                            ))
        );
$the_query = new WP_Query($args);
if($the_query -> have_posts()):
    while($the_query -> have_posts()): $the_query -> the_post();
        //ここに処理を記述
    endwhile;
endif;
wp_reset_postdata();

参考

[WordPress] カスタムフィールドで絞り込んで一覧表示する

functions.phpでカスタムフィールドの定義をする

functions.php
function add_post_info_fields($settings, $post_type, $post_id, $meta_type)
{
    // post以外の投稿タイプなら特に何もしない
    if ($post_type != 'post') {
        return $settings;
    }

    // 特定IDの投稿タイプなら特に何もしない
    /*
    if($post_id != '57'){
        return $settings;
    }
    */

    // 引数: (設定名スラッグ, ラベル名)
    $Setting = SCF::add_setting('post-setting', 'カスタム投稿設定');

    $items = post_array();

    // 引数: (グループ名, ループの可否, 項目の配列)
    $Setting->add_group('group-post-info', false, $items);

    // 今あるカスタムフィールドの設定に$Settingを追加
    array_push($settings, $Setting);
    return $settings;
}

// smart-cf-register-fieldsにフック
add_filter('smart-cf-register-fields', 'add_post_info_fields', 10, 4);

// カスタムフィールドの定義を設定
function post_array()
{
    $items = array(
        array(
          'name'  => 'form_name',
          'label' => 'テキスト入力枠1',
          'type'  => 'text',
        ),
        /*
        array(
          'name' => 'select',
          'label' => '選択肢',
          'type'    => 'select',
          'choices' => array( 'a', 'b', 'c' ),
          'default' => 'aa@bb.com',
          'instruction' => 'テキスト',
          'notes' => '注釈',
          'date_format' => '日付のフォーマット y/m/d i:s',
          'max_date' => '最大日付 +1m +1w',
          'min_date' => '日付のフォーマット +1m +1w'
        ),
        */
  );
    return $items;
}

参考

SmartCustomFieldsのコードでの定義についてのまとめ

カテゴリーに画像を追加する

参考

[Smart Custom Fieldsでカテゴリー・カスタムタクソノミーに設定を追加する]
( https://yosiakatsuki.net/blog/scf-category-option/ )

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?