'; // var_dump('author'); // print_r('author'); // echo ''; // die(); include_module('blog'); function get_posts_by_page_and_category($paged = 1, $category = '') { $args = [ 'post_type' => 'post', 'posts_per_page' => 9, // Adjust the number of posts per page 'paged' => intval($paged) + 1, 'post_status' => 'publish', // Только опубликованные записи ]; if (!empty($category)) { $args['tax_query'] = [ [ 'taxonomy' => 'category', 'field' => 'slug', // or 'term_id', 'name' depending on how you identify categories 'terms' => $category, ], ]; } $q = new WP_Query($args); return new Timber\PostQuery($q); } function ajax_load_blog_posts() { $page_num = isset($_POST['page_num']) ? sanitize_text_field($_POST['page_num']) : ''; $context = Timber::context(); $category = $_POST['category']; $context['posts'] = get_posts_by_page_and_category($page_num, $category); $html = Timber::compile('/blog/news-list.twig', $context); echo $html; wp_die(); } add_action('wp_ajax_load_blog_posts', 'ajax_load_blog_posts'); add_action('wp_ajax_nopriv_load_blog_posts', 'ajax_load_blog_posts'); function ajax_front_page_get_blog_posts() { $context = Timber::context(); $category = $_POST['category']; $args = [ 'post_type' => 'post', 'posts_per_page' => 5, // Adjust the number of posts per page 'paged' => intval($paged) + 1, 'post_status' => 'publish', // Только опубликованные записи ]; if (!empty($category)) { $args['tax_query'] = [ [ 'taxonomy' => 'category', 'field' => 'slug', // or 'term_id', 'name' depending on how you identify categories 'terms' => $category, ], ]; } $featured_query = new WP_Query($args); $f_query = array(); $i = 0; foreach($featured_query->posts as $item){ if ($i > 0){ $f_query[] = Timber::get_post($item, 'BlogPost'); } else{ $featured_post = Timber::get_post($item, 'BlogPost'); } $i++; } $context['blog_posts'] = $f_query; $context['featured_post'] = $featured_post; $html = Timber::compile('/blog/blog-front-page-post-list_block.twig', $context); echo $html; wp_die(); } add_action('wp_ajax_front_page_get_blog_posts', 'ajax_front_page_get_blog_posts'); add_action('wp_ajax_nopriv_front_page_get_blog_posts', 'ajax_front_page_get_blog_posts');