ajaxで未ログイン時の「wp_ajax_nopriv~」が動かない
-
初投稿です。
まだ初心者なので基本的な勘違いや無知があるかもしれませんがご容赦ください。トップページで表示している新着記事を、カテゴリごとに絞り込めるようにしたいのですが、タイトルのとおり、ajaxで使う関数をadd_actionの未ログイン時用が機能しません。
もちろん関数自体はログイン時と同じものですし、そちらは問題なく動いています。
ログイン関連のプラグインもいくつか使っていますが、全てのプラグインを無効化しても変化はありませんでした。何かおかしな点、改善点があれば教えて頂ければと思います。
以下 コードです。
header.php(ajax部分のみ)$.ajax({ type: 'POST', url: ajaxurl, data: data, dataType: "JSON", success: function( response ){ //var posts = JSON.parse( response ); var posts = response; var phref; if(posts.length == 0){ select_inner += '<section class="info_child">'; select_inner += '<h4>ないよ</h4>'; select_inner += '<section class="info_child">'; blog_main.innerHTML = select_inner; }else{ if(response == 0){ select_inner += '<section class="info_child">'; select_inner += '<h4>ないって</h4>'; select_inner += '<section class="info_child">'; blog_main.innerHTML = select_inner; }else{ for(var i = 0;i < posts.length;i++){ select_inner += '<section class="info_child" id="info_child">'; select_inner += posts[i]['thumbnail']; select_inner += '<div class="info-text"><p>'; select_inner += posts[i]['time']; select_inner += '</p></div>'; select_inner += '<h4 name="info_child_title">'; select_inner += '<a href="" target="blank">'; select_inner += posts[i]['post_title']; select_inner += '</a>'; select_inner += '</h4>'; select_inner += '<div class="excerpt_text" name="excerpt_text">'; select_inner += posts[i]['post_content']; select_inner += '</div>'; select_inner += '</section>'; } console.log(select_inner); blog_main.innerHTML = select_inner; for(var i = 0;i < posts.length;i++){ var phref = posts[i]['permalink']; phref.replace('http://localhost/wordpress/',''); document.getElementsByName('info_child_title')[i].firstChild.href = phref; document.getElementsByName('excerpt_text')[i].lastChild.href = phref; console.log(document.getElementsByName('excerpt_text')[i].lastChild.href); } } } document.getElementById('info_child_after_a').href = home_url+'category/'+cat; document.getElementById('info_child_after_a').innerHTML = cat_name+'へ'; posts = null; } });
functions.php
add_action( 'wp_ajax_nopriv_my_ajax_get_posts', 'my_ajax_get_posts' ); add_action( 'wp_ajax_my_ajax_get_posts', 'my_ajax_get_posts' ); function my_ajax_get_posts(){ $cat = $_POST['category']; $cat_id = get_category_by_slug($cat); $cat_id = $cat_id->cat_ID; $returnObj = array(); $args = array( 'post_type' => 'post', 'numberposts' => 5, 'category' => $cat_id, ); $posts = get_posts( $args ); foreach( $posts as $key => $post ) { $content = preg_replace("|(<img[^>]+>)|si","",$post->post_content); $content = mb_substr( strip_tags($content), 0, 60 ); if(mb_strlen($content) >= 60){ $content .= '<a href="' . get_permalink() . '">' . __('…(もっと見る)') . '</a>'; } $returnObj[$key] = array( 'post_title' => $post->post_title, 'permalink' => get_permalink( $post->ID ), 'thumbnail' => get_the_post_thumbnail( $post->ID ), 'time' => get_post_time('Y.n.j', false, $post->ID ), 'post_content' => $content, ); } echo json_encode( $returnObj ); exit(); }
5件の返信を表示中 - 1 - 5件目 (全5件中)
5件の返信を表示中 - 1 - 5件目 (全5件中)
- トピック「ajaxで未ログイン時の「wp_ajax_nopriv~」が動かない」には新たに返信することはできません。