예제 #1
0
/**
 * 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;
}
예제 #2
0
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>';
}