好吧,我正在尝试使用WP_Query
以及一些参数来获取WooCommerce产品
它给我结果,但是按产品标题排序不起作用,而且当我尝试在参数中添加类别时也不起作用。
这是我正在尝试的:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$params = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => 20,
// 'category__in' => array(22),
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC'
);
$query = new WP_Query( $params );
$total_found_posts = $query->found_posts;
$total_page = ceil($total_found_posts / 20);
任何帮助表示赞赏
谢谢
答案 0 :(得分:0)
您的查询对我有用。也许问题在于您如何提取产品并展示它们?
我在自己的一个网站上实现了以下功能,并按字母顺序列出了前20种产品:
add_action('astra_header_before', 'entreprenerds_callback');
function entreprenerds_callback() {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$params = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => 20,
// 'category__in' => array(22),
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC'
);
$query = new WP_Query( $params );
$total_found_posts = $query->found_posts;
$total_page = ceil($total_found_posts / 20);
echo "## " . $total_found_posts . " ##"; // shows me 51
while($query->have_posts()) {
$query->the_post();
echo get_the_title() . '<br />';
}
}
您是否在循环中使用了正确的查询对象?
答案 1 :(得分:0)
好吧,我的查询工作正常,问题出在我的“ Post Types Order”插件,它为orderby子句添加了额外条件。
我将我的参数更改为此:
$params = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => 20,
'ignore_custom_sort' => true,
'paged' => $paged,
'orderby' => 'title',
'order' => 'ASC'
);
它按我的意愿工作。