カスタムフィールドで、記事一覧をプルダウンにしたいのですが・・・
-
お世話になります。
色々と思考錯誤してみたのですが、どうしても方法が
わからなかったので質問させていただきます。現在、「施設情報」と「採用情報」という
2つのカスタム投稿タイプを作成し、
それぞれカスタムフィールドをfunctions.phpで生成しています。それぞれ、
施設情報は[service]
採用情報は[recruitment]としております。やりたいことは、
「採用情報」の投稿画面に
「施設情報」の記事一覧を取得し、それをプルダウンにして
選択できるようにしたいのです。function.phpに以下のようなソースを書きましたが、
一部のカスタムフィールドを記録してくれません。add_action('admin_menu', 'rec_service'); add_action('save_post', 'save_rec_service'); function rec_service() { add_meta_box('rec_service_area', '募集対象施設・サービス', 'rec_service_wrap', 'recruitment', 'advanced' ); } // 募集対象施設・サービス 入力フィールド function rec_service_wrap() { global $post; echo '<input type="hidden" name="rec_service_field" id="rec_service_field" value="' .wp_create_nonce( plugin_basename(__FILE__) ) . '" />'; $rec_service_select = get_post_meta($post->ID,'rec_service_select',true); echo '<p>'; echo '<label for="rec_service_select">募集対象施設・サービス</label><br />'; echo '<select name="rec_service_select" id="rec_service_select">'; echo '<option value="">選択してください</option>'; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $wp_query = new WP_Query( array( 'post_type' => 'service', 'posts_per_page' => 500, 'paged' => $paged ) ); while ( $wp_query->have_posts() ) : $wp_query->the_post(); echo '<option value="'; echo $wp_query->post->ID; echo'"'; if($rec_service_select == $wp_query->post->ID ){ echo ' selected="selected"'; } echo '>'; echo the_title(); echo '</option>'; endwhile; wp_reset_query(); echo '</select>'; echo '<input type="hidden" name="rec_service_place1" id="rec_service_place1" value="'.get_post_meta($rec_service_select,'service_place1',true).'">'; echo '<input type="hidden" name="rec_service_place2" id="rec_service_place2" value="'.get_post_meta($rec_service_select,'service_place2',true).'">'; echo '<input type="hidden" name="rec_service_place3" id="rec_service_place3" value="'.get_post_meta($rec_service_select,'service_place3',true).'">'; echo '</p>'; } function save_rec_service ( $post_id ) { if ( !wp_verify_nonce( $_POST['rec_service_field'], plugin_basename(__FILE__) )) { return $post_id; } if ( 'page' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id )) return $post_id; } else { if ( !current_user_can( 'edit_post', $post_id )) return $post_id; } // 募集対象施設・サービス $rec_service_select = ($_POST['rec_service_select']); if( strcmp($rec_service_select,get_post_meta($post_id, 'rec_service_select', true)) != 0 ) update_post_meta($post_id, 'rec_service_select', $rec_service_select); elseif($rec_service_select=="") delete_post_meta($post_id, 'rec_service_select',get_post_meta($post_id,'rec_service_select',true)); $rec_service_place1 = ($_POST['rec_service_place1']); if( strcmp($rec_service_place1,get_post_meta($post_id, 'rec_service_place1', true)) != 0 ) update_post_meta($post_id, 'rec_service_place1', $rec_service_place1); elseif($rec_service_place1=="") delete_post_meta($post_id, 'rec_service_place1',get_post_meta($post_id,'rec_service_place1',true)); $rec_service_place2 = ($_POST['rec_service_place2']); if( strcmp($rec_service_place2,get_post_meta($post_id, 'rec_service_place2', true)) != 0 ) update_post_meta($post_id, 'rec_service_place2', $rec_service_place2); elseif($rec_service_place2=="") delete_post_meta($post_id, 'rec_service_place2',get_post_meta($post_id,'rec_service_place2',true)); $rec_service_place3 = ($_POST['rec_service_place3']); if( strcmp($rec_service_place3,get_post_meta($post_id, 'rec_service_place3', true)) != 0 ) update_post_meta($post_id, 'rec_service_place3', $rec_service_place3); elseif($rec_service_place3=="") delete_post_meta($post_id, 'rec_service_place3',get_post_meta($post_id,'rec_service_place3',true)); }
記録されないのは、rec_service_place1、rec_service_place12、
rec_service_place3です。ためしにrec_service_selectのプルダウン部分を丸ごと削除してみたところ、
正常に記録されたので、おそらくループの仕方が悪いのだと思いますが、
どのように取得するのがよいのかがわかりません。お手数おかけいたしますが、ご教授いただけませんでしょうか。
よろしくお願いいたします。
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「カスタムフィールドで、記事一覧をプルダウンにしたいのですが・・・」には新たに返信することはできません。