Intereting Posts

получать контент со страницы через AJAX

Я использую тему wordpress, и я хочу загрузить контент через AJAX внутри страницы.

Я добавил это внутри моих functions.php :

function my_ajax_files() { wp_localize_script( 'function', 'my_ajax_script', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); wp_enqueue_script( 'function', get_template_directory_uri().'/my_js_stuff.js', 'jquery', true); } add_action('template_redirect', 'my_ajax_files'); function get_my_comments() { global $current_user; get_currentuserinfo(); echo 'Username: ' . $current_user->user_login . '<br />'; echo 'User display name: ' . $current_user->display_name . '<br />'; $args = array( 'user_id' => $current_user->ID, // use user_id 'post_type' => 'debate' ); $comments = get_comments($args); echo '<ol class="commentlist">'; wp_list_comments( array( 'per_page' => 10, //Allow comment pagination 'reverse_top_level' => false //Show the latest comments at the top of the list ), $comments ); echo '</ol>'; } add_action("wp_ajax_nopriv_get_my_comments", "get_my_comments"); add_action("wp_ajax_get_my_comments", "get_my_comments"); 

и этот файл my_js_stuff.js содержит следующее:

 jQuery(document).ready( function() { jQuery( "#target" ).click(function() { jQuery.ajax({ url: my_ajax_script.ajaxurl, data: ({action : 'get_my_comments'}), success: function() { jQuery("#content").append(data); } }); }); }); 

Внутри страницы, где я хочу получить контент из функции, я добавил div с идентификатором цели , но когда я нажимаю на него, ничего не происходит, я также проверил консоль, и у меня нет никаких ошибок.

Что не так ?

Solutions Collecting From Web of "получать контент со страницы через AJAX"

Это правильный способ сделать это?

Это неправильный способ сделать это.

То, что вы делаете, во-первых, не имеет смысла концептуально. Когда вы загружаете эту страницу (при условии ее правильной загрузки), вы загружаете всю страницу WordPress, а не только комментарии. То есть вы загрузите <html> полностью через </html> . В этом нет никакого смысла. Все, что вам нужно, это комментарии.

Во-вторых, WordPress предоставляет механизм для централизации запросов AJAX. Он называется API AJAX, и как только вы его повесите, вы никогда не попробуете ничего другого. Используйте это.

На этом сайте есть множество вопросов об использовании API AJAX, включая этот .

Провести исследования. Постарайтесь сделать это правильно. Затем отредактируйте вопрос с конкретными проблемами, которые у вас есть.

Редактировать:

Я посмотрел ваши изменения и …

Вам нужно die() в конце вашего обратного вызова Ajax, за Codex .

Если my_ajax_script.ajaxurl установлен неправильно, ничего не будет работать. Посмотрите на источник страницы и подтвердите это.