WordPress: Как вернуть набор результатов из клика? - PullRequest
0 голосов
/ 05 февраля 2019

Я новичок в программировании, и я застрял на этом.Это в WordPress / PHP.

Во-первых, у меня есть выпадающий список категорий с кнопкой отправки.Этот код входит в файл mainindex.php:

<form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php"  method="POST" id="filter">
    <?php category_dropdown(); ?>
</form>

Представление работает нормально, и (я полагаю, AJAX) вызывает мою функцию фильтрации.У меня есть это в themefunctions.php файле:

add_action( 'wp_ajax_myfilter', 'filter_function' ); 
add_action( 'wp_ajax_nopriv_myfilter', 'filter_function' );

function filter_function() {
    $args = array(
        'orderby' => 'date', // we will sort posts by date
        'order'   => $_POST['date'], // ASC or DESC
    );

    if ( isset( $_POST['categoryfilter'] ) ) {
        $args['tax_query'] = array(
            array(
                'taxonomy' => 'category',
                'field'    => 'id',
                'terms'    => $_POST['categoryfilter'],
            )
        );
    }

    $query = new WP_Query( $args );

    die();
}

Теперь я хочу получить доступ к переменной $query в моем mainindex.php, чтобы я мог написать:

if( $query->have_posts() ) :
    while( $query->have_posts() ): $query->the_post();
        get_template_part( 'content', get_post_format() );
    endwhile;
    wp_reset_postdata();
else :
    echo 'No posts found';
endif;

Исправьте меня, еслиЯ ошибаюсь, но я не могу просто сказать $query = filter_function(); в mainindex.php и вернуть $query в функции фильтра, потому что она должна запускаться по щелчку, а не вызываться напрямую.

IЯ застрял на этом, это, вероятно, довольно просто.Нужно ли создавать глобальную переменную $query или что-то подобное, чтобы к ней можно было обращаться в отдельном файле php?Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...