Questions tagged «order»

查询中使用的参数,用于指定排序的类型和方向。

1
WP_Query-按元值排序结果
我检查了一下,还没有找到一个可行的答案。我有以下论点的WP_Query: $args = array( 'post_status' => 'publish', 'post_type' => 'listing', 'meta_key' => 'client_feedback_score', 'orderby' => 'client_feedback_score', 'order' => 'DESC' ); $query = new WP_Query($args); 我想按自定义帖子字段“ client_feedback_score”(从最低到最高)对结果进行排序。但这似乎不起作用……有人能指出我正确的方向吗? 编辑(已解决): 感谢Milo的回应,以下是通过数字元值进行排序的工作代码: $args = array( 'post_status' => 'publish', 'post_type' => 'listing', 'meta_key' => 'client_feedback_score', 'orderby' => 'meta_value_num', 'order' => 'DESC' );

12
按元值排序,但包含没有一个的帖子
我一直在使用pre_get_posts过滤器修改内置的WP搜索,使用户可以按不同字段对帖子(包括一堆自定义帖子类型)进行排序。 我遇到的问题是,当我告诉WP按元值排序时,它将排除所有未设置该元值的帖子。如果将排序方式从“价格”更改为“日期”,这将导致结果数量发生变化,因为“帖子”没有设置“价格”,而“项目”却设置了。 这不是我想要的,所以我想知道是否有一种方法可以包含所有帖子-即使那些缺少我正在排序的元值的帖子-并将没有该值的帖子放在最后。 我知道如何在多个字段上进行排序,但这无济于事。 谢谢 似乎我不是唯一一个提出此问题的人:如何在wp_query的args中包含带有&不带有某些meta_key的帖子?但那里没有解决方案。 更新资料 我已经尝试了答案,但是不确定我是否理解正确,这是我现在所拥有的: <?php function my_stuff ($qry) { $qry->set('meta_query', array(array( 'key' => 'item_price', 'value' => '', 'compare' => 'NOT EXISTS' ))); $qry->set('orderby', 'meta_value date'); # Sorting works with meta_value as well as meta_value_num - I've tried both $qry->set('order', 'ASC DESC'); $qry->set('meta_key', 'item_price'); } 元值是一个数字(顾名思义,它用于存储价格) 更新2 …


2
是否可以正确分页随机排序的帖子?
我在Wordpress支持上发现了此问题,不幸的是,该主题现已关闭。我有同样的问题...(阅读下文) 我们创建了一个站点,成员可以在其中推荐诸如喜欢的书,电影,歌曲等内容。针对此问题,我将以“电影”页面为例。 “电影”页面最终是一个自定义页面模板,该模板要求wordpress显示已被赋予“电影”类别(类别31)的所有帖子的随机列表。它使用下面的代码以随机顺序显示这些电影的标题。 <?php $rand = new WP_Query("cat=31&showposts=-1&orderby=rand"); while($rand->have_posts()) : $rand->the_post(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> <?php endwhile; ?> 问题是列表越来越长,我想将其分成两页或更多页,每页约10部电影。为此,我使用了下面的代码。 <?php $page = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("cat=31&orderby=rand&showposts=10&paged=$page"); while ( have_posts() ) : the_post() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> …
30 pagination  order 

2
使用Orderby和meta_value_num首先对数字进行排序,然后对字符串进行排序
我有一个产品列表,每个产品的价格都在自定义字段中以“ 2.50”或“ 5.00”之类的文本形式存储在价格字段中,并通过按价格对价格进行自定义查询的自定义查询在页面上显示这些产品: if(!$wp_query) { global $wp_query; } $args = array( 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC' ); query_posts( array_merge( $args , $wp_query->query ) ); 这对于价格来说很好用,但是有些价格是“ POA”,我想最后显示它们,但是上述订单以“ POA”在前的方式显示。 有什么方法可以改变这种情况,或者我可以使用快速技巧对阵列进行排序,然后将“ POA”价格放在最后吗?
16 order 

2
自定义帖子类型-订单字段
在自定义帖子类型中,是否可以包含可用于页面的“订单”字段? 是否有任何内置逻辑可防止“ order”字段中的重复值? 这个想法是要能够按照用户指定的顺序对自定义帖子类型进行排序,然后再按字母顺序对基于字符串的自定义字段进行排序。

4
在对查询进行排序时忽略初始文章(例如“ a”,“ an”或“ the”)?
我目前正在尝试输出音乐标题列表,并希望排序忽略(但仍显示)该标题的初始文章。 例如,如果我有乐队列表,它将在WordPress中按字母顺序显示,如下所示: 黑色安息日 齐柏林飞艇 平克·弗洛伊德(乐队名 披头士 纠结 滚石乐队 薄丽兹 相反,我希望按字母顺序显示它,而忽略初始文章“ The”,如下所示: 披头士 黑色安息日 纠结 齐柏林飞艇 平克·弗洛伊德(乐队名 滚石乐队 薄丽兹 去年,我在一个博客条目中遇到了一个解决方案,该提议在中提供了以下代码functions.php: function wpcf_create_temp_column($fields) { global $wpdb; $matches = 'The'; $has_the = " CASE WHEN $wpdb->posts.post_title regexp( '^($matches)[[:space:]]' ) THEN trim(substr($wpdb->posts.post_title from 4)) ELSE $wpdb->posts.post_title END AS title2"; if ($has_the) { $fields .= …

1
通过DESC,ASC在自定义WP_Query中排序
我需要在查询中进行多级排序。问题在于如何像在SQL中那样对一个值DESC和另一个ASC进行排序。在终端中运行以下SQL似乎可以满足我的要求: SELECT DISTINCT * FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE wp_posts.post_type = 'post' AND wp_postmeta.meta_key = 'pb_issue_featured' AND wp_posts.post_status = 'publish' ORDER BY wp_postmeta.meta_value DESC, wp_posts.menu_order ASC; 该pb_issue_featured是一个布尔值。我需要的最终结果是查询以在顶部显示该字段的值为1的帖子,然后显示所有其他字段。然后指定第二层订购menu_order(我正在使用帖子类型订购插件)。 问题是我的布尔值需要从高到低(从1到0)排序,但是menu_order相反。该插件首先订购的菜单的菜单顺序为1。因此,无法使用WP_Query中的内置“ orderby”。有人有建议吗?我调查了“ posts_orderby”过滤器,但无法理解。真的不确定应该在哪里应用它或如何解决它。只是没有按照我的方式重新排序。 谢谢您的帮助!如果相关,我将发布实际的WP_Query,但我想使其尽可能短。 查询参数: $args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' …
8 wp-query  mysql  order 

2
排序:使用orderby meta_value_num然后按标题排序的自定义查询
我尝试运行自定义帖子类型查询以匹配以下条件: 首先按年份降序对电影进行排序, 然后按名称标题(在“年内”进行排序)。 所需的输出: 电影标题A,2006 电影标题Z,2006 ... 电影标题A,1996 电影标题Z,1996 我使用以下代码: $wp_query = new WP_Query(); $wp_query->query( array( 'post_type' => 'movies', 'distribution' => 'companyA', 'meta_key' => 'year', 'orderby' => 'meta_value_num title', 'order' => 'DESC', 'posts_per_page' => -1, 'post_status' => 'publish', )); 我尝试了几件事,但我只能得到这个“反”结果: 电影A,1996 电影Z,1996 ... 电影A,2006 电影Z,2006 如果我更改DESC,ASC,则仅更改标题排序。但我需要将其应用于年份而不是标题。 使用两个ord​​erby值是正确的方法吗?还是我必须使用meta_query或自定义SQL? 提前谢谢! 这是从中得到的SQL查询 $GLOBALS['wp_query']->request …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.