WordPress内のPHPファイルにてAjax通信を行っています。
WordPressの管理画面のサイト表示だと出力させたいデータが表示されるのですが、管理画面外のブラウザで実際にサイトを表示するとデータが0で返ってきており、表示されません。
追記1:localstorageで保存したデータを特定のページに出力させようとしております。
※Wordpress内のサイト表示では出力されていて、ブラウザでサイト表示させると0が返ってきている状態です。
わかりにくくて申し訳ございません。
追加2:admin-ajax.phpを使用したAjax通信なのですが、管理画面外は使用できないのでしょうか。
追加3:'wp_ajax_nopriv_…'は記載しております。
追加4:
PHP
1function favorite_ajax_scripts(){ 2 if(is_page('favorites-list')){ 3 wp_enqueue_script('favorite', get_theme_file_uri('test.js'), array('jquery')); 4 wp_localize_script('favorite', 'favorite_params', array( 5 'ajaxurl' => admin_url('admin-ajax.php') 6 )); 7 } 8} 9add_action('wp_enqueue_scripts', 'favorite_ajax_scripts'); 10add_action('wp_ajax_favorite', 'favorite_ajax_handler'); 11add_action('wp_ajax_nopriv_favorite', 'favorite_ajax_handler'); 12function favorite_ajax_handler(){ 13 $tag_ids = $_POST['id']; 14 if(empty($tag_ids)) { 15 echo '<p>まだ登録がありません</p>'; 16 die(); 17 return; 18} 19 $tag_ids = explode(',',$tag_ids); 20 21 $args = array( 22 'include' => $tag_ids 23 ); 24 25 $tags_array = get_tags($args); 26 27 if (!empty($tags_array)) { 28 echo '<ul class="tagcloud pick-up-tags tag-link-count">'; 29 foreach ( $tags_array as $tag ) { 30 $tag_link = get_tag_link( $tag->term_id ); 31 echo '<a href="'.$tag_link.'">'.'<span class="tag-caption">'.$tag->name.'<span class="tag-link-count">'.$tag->count.'</span>'.'</span>'.'</a>'; 32 } 33 echo '</ul>'; 34 } else { 35 echo '<p>まだ登録がありません</p>'; 36 } 37 die(); 38}
何か他に設定やコードの記述が必要なのでしょうか。
ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー