过滤WordPress搜索结果 - 不拾取值


Filter wordpress search results - not picking up values

我正在将我的搜索查询发送到这个目录搜索.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