我是编程的新手,对此我一无所知。这是在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文件中对其进行访问?谢谢。