add infinity scroll frontpage and paged

This commit is contained in:
2024-07-14 20:59:28 +03:00
parent 2ead9c2bee
commit 6960f49d78
4 changed files with 87 additions and 19 deletions

View File

@@ -244,30 +244,43 @@ function custom_pagination($query = null)
echo '</div></div>';
}
function my_theme_scripts()
{
wp_enqueue_script('my-load-more', get_template_directory_uri() . '/js/load-more.js', array('jquery'), null, true);
function my_theme_scripts() {
if (is_front_page() || (is_category() && !is_paged())) {
wp_enqueue_script('my-load-more', get_template_directory_uri() . '/js/load-main-scroll.js', array('jquery'), null, true);
$query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 10, 'cat' => '19'));
$query_vars = array('post_type' => 'post', 'posts_per_page' => 10);
if (is_category()) {
$category = get_queried_object();
$query_vars['cat'] = $category->term_id;
}
// Передаем переменные в скрипт
wp_localize_script('my-load-more', 'my_load_more_params', array(
'ajaxurl' => admin_url('admin-ajax.php'), // URL для AJAX-запроса
'posts' => json_encode($query->query_vars), // Параметры запроса
'current_page' => get_query_var('paged') ? get_query_var('paged') : 1, // Текущая страница
'max_page' => $query->max_num_pages // Максимальное количество страниц
));
$query = new WP_Query($query_vars);
wp_localize_script('my-load-more', 'my_load_more_params', array(
'ajaxurl' => admin_url('admin-ajax.php'),
'posts' => json_encode($query->query_vars),
'current_page' => max(1, get_query_var('paged')), // Начальная страница
'max_page' => $query->max_num_pages
));
}
}
add_action('wp_enqueue_scripts', 'my_theme_scripts');
function loadmore_ajax_handler()
{
function loadmore_ajax_handler() {
$args = json_decode(stripslashes($_POST['query']), true);
$args['paged'] = $_POST['page'] + 1; // следующая страница
$args['paged'] = $_POST['page'] + 1;
$args['post_status'] = 'publish';
$args['posts_per_page'] = 12;
$args['cat'] = [-17, -20, -21];
// Проверка на категорию, если она есть в параметрах запроса
if (isset($args['cat']) && !empty($args['cat'])) {
$args['cat'] = $args['cat'];
} else {
$args['cat'] = [-17, -20, -21];
}
query_posts($args);
@@ -278,8 +291,11 @@ function loadmore_ajax_handler()
endif;
die;
}
add_action('wp_ajax_loadmore', 'loadmore_ajax_handler'); // для авторизованных пользователей
add_action('wp_ajax_nopriv_loadmore', 'loadmore_ajax_handler'); // для неавторизованных пользователей
add_action('wp_ajax_loadmore', 'loadmore_ajax_handler');
add_action('wp_ajax_nopriv_loadmore', 'loadmore_ajax_handler');
/*
* Фильтр добавлен для модификации стандартной формы плагина Contact Form ( Срезаем span элементы, в которые оборачивается input ).