'ids', 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 1, 'orderby' => 'date', 'order' => 'ASC', 'date_query' => array( 'after' => get_the_time( 'Y-m-d H:i:s', get_queried_object_id() ), ), 'post__not_in' => array( get_queried_object_id() ), 'ignore_sticky_posts' => true, ); if ( get_theme_mod( 'post_load_nextpost_reverse', false ) ) { $args['order'] = 'DESC'; $args['date_query'] = array( 'before' => get_the_time( 'Y-m-d H:i:s', get_queried_object_id() ), ); } if ( get_theme_mod( 'post_load_nextpost_same_category', false ) ) { $terms = wp_get_post_terms( $post->ID, 'category', array( 'fields' => 'ids' ) ); if ( ! empty( $terms ) ) { $args['tax_query'] = array( array( 'taxonomy' => 'category', 'field' => 'term_id', 'terms' => $terms, ), ); } } // Run custom query. $query = new WP_Query( $args ); if ( $query->have_posts() ) { $next_post = array_shift( $query->posts ); } wp_reset_postdata(); return $next_post; } /** * Localize the main theme scripts. */ function csco_nextpost_more_js() { if ( ! csco_get_state_load_nextpost() ) { return; } if ( ! is_singular( 'post' ) ) { return false; } $ajax_type = version_compare( get_bloginfo( 'version' ), '4.7', '>=' ) ? 'ajax_restapi' : 'ajax'; $ajax_type = apply_filters( 'ajax_load_nextpost_method', $ajax_type ); $localize = array( 'type' => $ajax_type, 'not_in' => (array) get_queried_object_id(), 'next_post' => csco_nextpost_get_id(), 'current_user' => get_current_user_id(), 'nonce' => wp_create_nonce( 'csco-load-nextpost-nonce' ), 'rest_url' => esc_url( get_rest_url( null, '/csco/v1/more-nextpost' ) ), 'url' => admin_url( 'admin-ajax.php' ), 'current_lang' => csco_get_current_language(), 'current_locale' => get_locale(), ); wp_localize_script( 'csco-scripts', 'csco_ajax_nextpost', $localize ); } add_action( 'wp_enqueue_scripts', 'csco_nextpost_more_js', 99 ); /** * Get More Post */ function csco_load_nextpost() { global $csco_related_not_in; global $wp_query; global $post; global $more; // Check Nonce. wp_verify_nonce( null ); csco_set_ajax_lang(); csco_set_ajax_locale(); $not_in = array(); $next_post = null; if ( isset( $_POST['not_in'] ) ) { // Input var ok. $not_in = (array) wp_unslash( $_POST['not_in'] ); // Input var ok. } if ( isset( $_POST['next_post'] ) ) { // Input var ok. $post_id = (int) $_POST['next_post']; // Input var ok. } if ( isset( $_POST['current_user'] ) ) { // Input var ok. wp_set_current_user( (int) $_POST['current_user'] ); // Input var ok. } // Get Post. ob_start(); if ( isset( $post_id ) ) { // Add post id for filter. array_push( $not_in, (string) $post_id ); // Set global filter. $csco_related_not_in = $not_in; // Query Args. $args = array( 'p' => $post_id, ); $query = new WP_Query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); // Set wp_query data. $wp_query = $query; $wp_query->is_single = true; $wp_query->is_singular = true; // Set global more. $more = 1; ?>