我将搜索查询发送到此directory-search.php模板。它得到的结果没有问题,但是如我所见,我试图过滤结果,所以我可以让那些在更高的member_type值更高的那些。即使我完全删除了这个过滤器,它仍然以完全相同的顺序显示相同的结果,似乎不想注意这些参数。
参数
directory-search.php模板,显示resut(s)(名称,徽标等)。
<?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(); ?>
答案 0 :(得分:0)
问题在于你没有将$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
的代码