Toccaville

blog

WordPressプラグインSmart Custom Fieldsで用意した関連投稿や繰り返しフィールドを表示

 Akiko Kubo

お客様の案件ではAdvanced Custom Fieldでエンジニアさんに実装してもらうことが多かったのですが、気になっていたSmart Custom Fieldsを自分たちのサイトに使ってみました。

関連記事の選択と繰り返しフィールドが使えるのが大変ありがたく、ただ私が書き方を忘れそうなのでメモしておきます。

Smart Custom Fields WordPressプラグインページはこちら

例えばですが、このサイトでは書籍の情報を登録して、その書籍情報を記事ごとに選択できるのがベストだったので、下記のようにしています。

前提

投稿タイプ「book」と「投稿」がある。
カスタムフィールド「register books」と「select books」がある。

構成

カスタムフィールド「register books」

投稿タイプ「book」で利用されている。
繰り返しフィールド「relatedbooks」を含む。

カスタムフィールド「select books」

投稿タイプ「投稿」で利用されている。
繰り返しフィールド「selectedbooks」を含む。
「selectedbooks」の中に、「関連する投稿」タイプの「relatedbooks」があり、投稿タイプ「book」を選択可能としている。

記述

<?php
    $cf_selectedbooks = SCF::get('selectedbooks');
    foreach ( $cf_selectedbooks as $field_name => $field_value) {
        $note = esc_html($field_value['note']); 
        $check_array = $field_value['relatedbooks'];
        foreach($check_array as $field_array) {
            $book_title = get_post($field_array)->post_title;
            $cf_note_for_this_book = SCF::get('note_for_this_book', $field_array);

            $cf_registeredbooks = SCF::get( 'registeredbooks', $field_array );
            foreach ( $cf_registeredbooks as $field_registeredbooks ) {
                $language = $field_registeredbooks['language'];
                $title = $field_registeredbooks['title'];
                $type = $field_registeredbooks['type'];
                $amazon_affiliatetag_image = $field_registeredbooks['amazon_affiliatetag_image'];
                $amazon_affiliatetag_url = $field_registeredbooks['amazon_affiliatetag_url'];
                $author = $field_registeredbooks['author'];
                $author_kana = $field_registeredbooks['author_kana'];
                $illustration_on_pages = $field_registeredbooks['illustration_on_pages'];
                $translator = $field_registeredbooks['translator'];
                $publisher = $field_registeredbooks['publisher'];
                $published_date = $field_registeredbooks['published_date'];
                $cover_design = $field_registeredbooks['cover_design'];
                $illustration = $field_registeredbooks['illustration'];
                $cover_photo = $field_registeredbooks['cover_photo'];
            }
        }  
 	} 
 ?> 

参考にさせていただいたサイト

ありがとうございました。