AJAX пагинация
Пример подобной реализации ajax-пагинации подсмотрел в интернете, но насколько я понимаю на стороне клиента возможно как угодно изменить js объект AjaxPagination, в часности его свойство query_vars. На сервере оно передаётся в query_posts без изменений.
Подскажите, насколько безопасен такой вариант пагинации? и как можно проверить $_POST[ 'query' ] перед тем как передавать его в query_posts, да и нужно ли вообще это делать?
add_action( 'wp_enqueue_scripts', function () { wp_localize_script( 'pstu-next-theme-main', 'AjaxPagination', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'query_vars' => serialize( $wp_query->query_vars ), 'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1, 'max_num_pages' => $wp_query->max_num_pages ) ); } ); function true_load_posts () { $args = unserialize( stripslashes( $_POST[ 'query' ] ) ); $args[ 'paged' ] = $_POST[ 'page' ] + 1; $args[ 'post_status' ] = 'publish'; query_posts( $args ); get_template_part( 'includes/loop', 'blog' ); wp_die(); } add_action( 'wp_ajax_pstu_pagination', 'true_load_posts' ); add_action( 'wp_ajax_nopriv_pstu_pagination', 'true_load_posts' );