/** * return posts data via AJAX. */ function kamome_note_get_more_posts() { if (!is_admin()) { echo 'illegal request'; die; } if (!isset($_GET['query']) || !isset($_GET['stickies']) || !isset($_GET['nonce'])) { echo 'illegal request'; die; } if (!wp_verify_nonce($_GET['nonce'], KAMOME_NOTE_AJAX_LOAD_MORE_ACTION)) { echo 'illegal request'; die; } $args = $_GET['query']; //filter query $acceptable = kamome_note_ajax_acceptable_queries(); foreach ($args as $key => $value) { if (!in_array($key, $acceptable) && isset($args[$key])) { unset($args[$key]); } } $args['paged'] = (int) $args['paged'] + 1; $posts = get_posts($args); foreach ($posts as $post) { if (!in_array($post->ID, json_decode($_GET['stickies']))) { //stickies must already displayed, should be skipped. kamome_note_abbr_post($post); } } die; }
function kamome_note_load_more_navigation($stickies) { $args = kamome_note_ajax_acceptable_queries(); //defined in functions.php $query = array(); //filter the query foreach ($args as $arg) { $var = get_query_var($arg); if ($var) { $query[$arg] = get_query_var($arg); } } if (!isset($query['paged'])) { $query['paged'] = 1; } global $wp_query; printf('<p id="end-of-articles" data-query="%s">', esc_attr(json_encode($query))); printf('<input type="hidden" id="ids_of_stickies" value="%s">', json_encode($stickies)); printf('<input type="hidden" id="published_posts" value="%s">', $wp_query->found_posts); wp_nonce_field(KAMOME_NOTE_AJAX_LOAD_MORE_ACTION, 'ajax-nonce', false, true); echo '</p>'; echo '<div class="loadmore_wrapper">'; printf('<a id="loadmore-button">%s</a>', esc_html__('LOAD MORE', 'kamome-note')); echo '</div>'; }