WordPress:如何从点击返回结果集?

时间:2019-02-05 15:26:34

标签: php ajax wordpress

我是编程的新手,对此我一无所知。这是在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,因为它需要在单击和点击后运行不能直接调用。

我对此很固执,这可能很简单。我是否需要创建全局变量$query或其他内容,以便可以在单独的php文件中对其进行访问?谢谢。

0 个答案:

没有答案