首页 > 解决方案 > 自定义 WordPress 查询排序功能

问题描述

我试图让用户对自定义 WP 查询进行排序,但我无法让它工作,所以也许有人知道我做错了什么?

我将其用作自定义查询:

<?php
    $args = array(
        'post_type'        => 'vacation',
        'meta_key'          => get_query_var('meta_key'),
        'orderby'           => 'meta_value',
        'order'             => get_query_var('order'),
        'posts_per_page'   => -1
    );

$query = new WP_Query( $args ); 
while ( $query->have_posts() ) { $query->the_post(); ?>

我用它作为 HTML 链接来订购:

<a href="?meta_key=bedrooms?order=asc">Bedrooms ASC</a>
<a href="?meta_key=bedrooms?order=desc">Bedrooms DESC</a>

URL 会改变,但是当我单击两个链接之一时,我看不到卧室从高到低或从低到高的任何顺序。

标签: wordpresssorting

解决方案


如果您的元值是整数类型,那么只需将“orderby”=>“meta_value”更改为“meta_value”=>“meta_value_num”。

<?php
$args = array(
    'post_type'        => 'vacation',
    'meta_key'          => get_query_var('meta_key'),
    'orderby'           => 'meta_value_num',
    'order'             => get_query_var('order'),
    'posts_per_page'   => -1
);

$query = new WP_Query( $args ); 
while ( $query->have_posts() ) { $query->the_post(); ?>

推荐阅读