@roma
Для вывода постов через AJAX в WordPress можно использовать следующий подход:
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php // загружаем WordPress require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' ); // получаем данные о постах $args = array( 'post_type' => 'post', 'posts_per_page' => 10, ); $posts = get_posts( $args ); // формируем массив с данными о постах $data = array(); foreach ( $posts as $post ) { $data[] = array( 'title' => get_the_title( $post->ID ), 'content' => get_the_content( $post->ID ), ); } // возвращаем данные в формате JSON header( 'Content-Type: application/json' ); echo json_encode( $data ); |
1 2 3 4 5 6 7 |
function load_posts() { // загружаем файл с данными о постах require_once( get_template_directory() . '/ajax-posts.php' ); die(); } add_action( 'wp_ajax_load_posts', 'load_posts' ); add_action( 'wp_ajax_nopriv_load_posts', 'load_posts' ); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
jQuery(document).ready(function($) { // обработчик нажатия на кнопку $('#load-posts-button').on('click', function() { // отправляем AJAX запрос $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'load_posts', }, success: function(data) { // обновляем содержимое страницы var html = ''; $.each(data, function(index, post) { html += '<h2>' + post.title + '</h2>'; html += '<div>' + post.content + '</div>'; }); $('#posts-container').html(html); }, error: function(xhr, status, error) { console.log(error); } }); }); }); |
Здесь #load-posts-button
- это кнопка, по нажатию на которую будет отправлен AJAX запрос, а #posts-container
- это контейнер, в котором будут отображаться посты.
@roma
Обратите внимание, что в приведенных примерах использованы jQuery и PHP. Убедитесь, что ваш сайт поддерживает jQuery и работает с PHP.
Также не забудьте добавить элемент с id "load-posts-button" для кнопки и элемент с id "posts-container" для контейнера, в котором будут отображаться посты.
При использовании AJAX в WordPress также важно учитывать безопасность и правильную обработку данных. В коде выше не представлена проверка безопасности AJAX запроса, что не рекомендуется для реального проекта.
При разработке реального проекта рекомендуется добавить дополнительные проверки и фильтрацию данных для безопасности вашего сайта.