前提
functions.phpに『よくある質問(FAQ)』というカスタム投稿を追加し、Custom Field Templateで『質問』と『回答』を入力するカスタムフィールドを作成しました。
カスタム投稿の各タイトル(計3つ)ごとに『よくある質問(FAQ)』を表示させたく、
カスタム投稿をコンテンツとしてページに表示するやり方が分からず、苦戦しています。
記事を調べたところ、以下の記事を参考に『single-{スラッグ名}.php』で値を表示させるところまではできました。
↓『質問』と『回答』をグループ化し、自由に追加・削除するやり方
https://kacco-e.com/blog/406
↓同一の項目に配列で入った値を出力させるやり方
http://doshiroutonike.com/web/wordpress/wp-plugin/1666
WordPress管理画面(カスタムフィールドテンプレート)
WordPress管理画面(カスタム投稿-タイトル3つ分)
WordPress管理画面(カスタム投稿-『よくある質問』)
実現したいこと
カスタム投稿の各タイトル(計3つ)ごとに『よくある質問(FAQ)』をページへ表示させたいです。
お力添えいただければ幸いです。
該当のソースコード
functions.php
1// 2022/07/11 カスタム投稿「よくある質問」の追加 2function custom_post_type_FAQ(){ 3 $labels = array( 4 'name' => _x('よくある質問', 'post type general name'), 5 'singular_name' => _x('よくある質問', 'post type singular name'), 6 'add_new' => _x('よくある質問を追加', 'book'), 7 'add_new_item' => __('新しいよくある質問を追加'), 8 'edit_item' => __('よくある質問を編集'), 9 'new_item' => __('新しいよくある質問'), 10 'view_item' => __('よくある質問を編集'), 11 'search_items' => __('よくある質問を探す'), 12 'not_found' => __('現在、よくある質問はありません'), 13 'not_found_in_trash' => __('ゴミ箱によくある質問はありません'), 14 'parent_item_colon' => '' 15 ); 16 $args = array( 17 'labels' => $labels, 18 'public' => true, 19 'publicly_queryable' => true, 20 'show_ui' => true, 21 'query_var' => true, 22 'rewrite' => true, 23 'capability_type' => 'post', 24 'has_archive' => true, 25 'hierarchical' => true, 26 'menu_position' => 4, 27 'supports' => array('title','excerpt','custom fields'), 28 ); 29 register_post_type('faq',$args); 30 } 31 add_action('init', 'custom_post_type_FAQ'); 32 33// 2022/07/11 カスタム投稿「よくある質問」の追加end
single
1<!-- FAQのカスタム投稿を表示するコード --> 2<?php 3// カスタムフィールドの値を取得 4$FAQfield = post_custom('FAQfield'); 5$FAQQuestion = post_custom('FAQQuestion'); 6$FAQAnswer = post_custom('FAQAnswer'); 7?> 8 9<?php if ( !empty( $FAQfield ) ): ?> 10<div class="faq-box"> 11 <?php if( $FAQfield == 1 ){ 12 echo '<ul>'; 13 echo '<li>'.$FAQQuestion.'</li>'; 14 echo '<li>'.$FAQAnswer.'</li>'; 15 echo '</ul>'; 16 }else{ 17 for( $i = 0; $i < $FAQfield; $i++ ){ 18 echo '<ul>'; 19 echo '<li>'.$FAQQuestion[$i].'</li>'; 20 echo '<li>'.$FAQAnswer[$i].'</li>'; 21 if( $i < $FAQfield -1 ){ echo '</ul>'; } 22 } 23 } ?> 24</div> 25<?php endif; ?> 26<!-- FAQのカスタム投稿を表示するコードend -->
試したこと
page.phpやsingle.phpのいずれかに以下のように記述しても表示されませんでした。
page.php,single.php
1if( get_post_type() === 'faq' ){ 2 3 get_template_part( 'single', 'faq' ); 4 5 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。