因此,我试图获得所有“属性”(自定义帖子类型)的最高价格。
$max_price_query = new WP_query(array(
\'posts_per_page\' => -1,
\'post_status\' => \'publish\',
\'post_type\' => \'properties\',
\'nopaging\' => true,
\'orderby\' => \'meta_value_num\',
\'meta_key\' => \'_price\',
\'order\' => \'DESC\',
));
if ($max_price_query->have_posts()) {
while ($max_price_query->have_posts()) : $max_price_query->the_post();
$pid = $post->ID;
$price_max = get_post_meta($pid, \'_price\', true);
echo \'<pre>\' . $pid . \'</pre>\';
endwhile;
wp_reset_postdata();
}
第一个问题是,它们是按ID订购的,而不是按价格订购的。这些属性称为属性1、属性2等,因此在本例中,按ID排序==按标题排序==按日期排序。
第二个问题是,在按ID排序之前,它们实际上是由另一个名为\\u featured\\u prop的meta\\u值(0或1)排序的。这是因为,我还有以下几点:
function set_query_parameters($query) {
if( !is_admin() && is_main_query() && is_post_type_archive( \'properties\' ) ) {
$query->set(\'meta_key\', \'_featured_prop\');
return $query;
}
add_action( \'pre_get_posts\', \'set_query_parameters\' );
我不明白为什么这个pre\\u get\\u posts似乎会影响我的新WP\\u查询,因为我在if语句中指定了“is\\u main\\u Query()”。我认为这不会影响我的第二个\\u查询。
当我回想起ID时,我基本上得到了:26、24、20、27、25、23、22、21、19。其中,26、24和20具有\\u characterized\\u prop=1。
如果有什么不同,第一个代码段将在侧栏中调用。正在调用到存档属性中的php文件。php。在其他地方,在第二个代码段中的函数文件中,我正在调用函数(因为在启动pre\\u get\\u posts之后,在加载归档页面之前,您不能执行pre\\u get\\u posts的add\\u操作)。
有人能帮我一下吗?