前提・実現したいこと
カスタム投稿のカスタムフィールドの値を非同期で更新したいです。
functions.phpにadmin-ajax.phpをheadに出力する記述をしたのち、非同期で表示させたいスケジュールデータを取得する記述をしました。
発生している問題・エラーメッセージ
load時に表示させるようjsに記述したのですが、クラスは表示されるがスケジュールデータが表示されません。
該当のソースコード
functions.php <?php function add_my_ajaxurl() { ?> <script> var ajaxurl = '<?php echo admin_url( 'admin-ajax.php'); ?>'; </script> <?php } add_action( 'wp_head', 'add_my_ajaxurl', 1 ); function view_sitename(){?> <div class="a"> <p class="b">schedule</p> <a href="<?php echo home_url( '/schedule' ); ?>"><p> <?php $args = array( 'post_type' => 'schedule', 'meta_key' => 'scheduling_day', 'orderby' => 'meta_value', 'order'=> 'ASC', 'posts_per_page' => -1, ); $posts = get_posts( $args ); $today = new DateTime(); foreach ($posts as $post ): setup_postdata( $post ); $schedule = scf::get('scheduling'); foreach($schedule as $fields){ if($today->format('Y-m-d') == $fields['scheduling_day']){ echo ' '.$fields['you'].' '.$fields['start'].' '.$fields['place'].' '; }break; }endforeach;?> </p></a> <?php die(); } add_action( 'wp_ajax_view_sitename', 'view_sitename' ); add_action( 'wp_ajax_nopriv_view_sitename', 'view_sitename' ); ?>
schedule_Ajax.js jQuery(window).on('load', function(){ jQuery.ajax({ type: 'POST', url: ajaxurl, data: { 'action' : 'view_sitename', }, success: function( response ){ jQuery('#ajax').html( response ); } }); return false; });
index.php <div id="ajax"></div>
試したこと
<?php the_title(); ?>のような記述をするとタイトルは表示されるのでデータ自体は取得出来ていると思うのですが...。カスタムフィールドの取得が出来ていないのでしょうか?
補足情報(FW/ツールのバージョンなど)
カスタム投稿とカスタムフィールドはプラグインのCPT UIを使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。