Php wordpress WP#U查询类的条件'&引用;orderby";或;订单“;论据
上下文:将Ajax与Wordpress结合使用Php wordpress WP#U查询类的条件'&引用;orderby";或;订单“;论据,php,ajax,wordpress,Php,Ajax,Wordpress,上下文:将Ajax与Wordpress结合使用 functions.php: $filterby = $_POST['filter']; $orderby = $_POST['order']; $args = array( 'post_type' => 'projects', 'posts_per_page' => -1, // 'orderby' => $or
functions.php
:
$filterby = $_POST['filter'];
$orderby = $_POST['order'];
$args = array(
'post_type' => 'projects',
'posts_per_page' => -1,
// 'orderby' => $orderby,
'orderby' => array( 'title' => 'ASC', 'date' => 'DESC' ),
// 'order' => 'ASC',
'category_name' => $filterby,
);
$filterby
关注帖子类别
$orderby
可以是'date'
或'title'
,具体取决于用户的选择
如果它是'date'
,我想要'order'=>'DESC'。[首先显示最新帖子]
如果它是“title”
,我想要“order”=>“ASC”。[按字母顺序从a到z显示]
感谢您抽出时间。只需使用if语句进行检查即可
$date_args = array(
'post_type' => 'projects',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => 'DESC',
'category_name' => $filterby,
);
$title_args = array(
'post_type' => 'projects',
'posts_per_page' => -1,
'orderby' => $orderby,
'order' => 'ASC',
'category_name' => $filterby,
);
if ( $_POST['order'] == date ) {
$the_query = new WP_Query( $date_args );
} elseif ( $_POST['order'] == title ) {
$the_query = new WP_Query( $title_args );
}
$filterby = $_POST['filter'];
$orderby = $_POST['order'];
$args = [
'post_type' => 'projects',
'posts_per_page' => -1,
'category_name' => $filterby
];
if($orderby == 'date'){
$args['orderby'] = 'date';
$args['order'] = 'DESC';
}elseif($orderby == 'title'){
$args['orderby'] = 'title';
$args['order'] = 'ASC';
}else{
unset($args['order']); unset($args['orderby']);
}
$query = new WP_Query($args);
我没有完全明白你的问题。您是否在询问如何编写查询?或者您正在询问如何在不刷新页面的情况下在浏览器中重新排序列表?当你说你在使用Ajax时,你到底是如何在这个问题上使用它的?请根据你的需要更新你的问题。这个问题还不清楚。感谢您花时间,是的,我想问一下如何编写查询,这样当用户单击前端的任一按钮时,就可以按标题(a到z)或日期(最晚的第一个)排序帖子。我在下面找到了解决方案。