我正在将我的搜索查询发送到这个目录搜索.php模板。它让结果没有问题,但正如所见,我正在尝试过滤结果,以便我可以将那些具有较高membership_type值的结果放在顶部。即使我完全删除了这个过滤器,它仍然以完全相同的顺序显示相同的结果,似乎不想注意到这些参数。
论点
目录搜索.php显示资源(名称、徽标等)的模板。
<?php
$args = array(
'post_type'=> 'directory_listings',
's' => $s,
'paged' => $paged,
'meta_query' => array(
array(
'key' => 'membership_type',
'orderby' => 'meta_value',
'order' => DESC
,
),
),
);
?>
<?php while (have_posts()) : the_post(); ?>
<div class="listing-image hide-for-small-only">
<?php
$new_logo = get_field('company_logo');
$old_logo = get_field('old_company_logo');
if( !empty($new_logo) ):
?>
<img src="<?php echo get_field('company_logo'); ?>" />
<?php elseif( !empty($old_logo) ): ?>
<img src="<?php echo get_field('old_company_logo'); ?>" />
<?php else : ?>
<img src="http://placehold.it/150x150" alt="" title="" />
<?php endif; ?>
</div>
<?php endwhile;
wp_reset_postdata(); ?>
问题是你没有在任何地方传递你的$args
数组,所以wordpress当然会忽略它。此外,DESC
应该在类似 "DESC"
的字符串中。
此代码应该有效:
<?php
$args = //... your values posted above
$query=new WP_Query($args);
?>
<?php if ($query->have_posts()): ?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<!-- your code here -->
<?php endwhile; ?>
<?php endif; ?>
看看手抄本WP_Query