사용자 정의 필드의 orderby meta_value가있는 사용자 정의 쿼리
8 대답
- 투표
-
- 2011-04-24
이전 방법을 사용하여 orderby 매개 변수에 대한 메타 키를 정의 할 수 있습니다 (WP 3.1.1에서 테스트했습니다) ...
query_posts( array( 'post_type' => 'services', 'order' => 'ASC', 'meta_key' => 'some_key', 'orderby' => 'meta_value', //or 'meta_value_num' 'meta_query' => array( array('key' => 'order_in_archive', 'value' => 'some_value' ) ) ) );
You can define the meta key for orderby parameter using the old method (I tested on WP 3.1.1)...
query_posts( array( 'post_type' => 'services', 'order' => 'ASC', 'meta_key' => 'some_key', 'orderby' => 'meta_value', //or 'meta_value_num' 'meta_query' => array( array('key' => 'order_in_archive', 'value' => 'some_value' ) ) ) );
-
- 2016-11-15
일반적으로이 문제는 명명 된 쿼리를 사용하여 WordPress 4.2에서 해결되었습니다. 예 :
$args = array( 'post_type' => 'services', 'orderby' => 'order_clause', 'meta_query' => array( 'order_clause' => array( 'key' => 'order_in_archive', 'value' => 'some_value', 'type' => 'NUMERIC' // unless the field is not a number )));
저는 숫자 필드로 주문하고 싶었고
'type' => 'NUMERIC'
.This issue in general is cleared up in WordPress 4.2 by using named queries. e.g.
$args = array( 'post_type' => 'services', 'orderby' => 'order_clause', 'meta_query' => array( 'order_clause' => array( 'key' => 'order_in_archive', 'value' => 'some_value', 'type' => 'NUMERIC' // unless the field is not a number )));
For me, I wanted to order by a numeric field and I had to use
'type' => 'NUMERIC'
inside the meta query.-
명명 된 쿼리에서 멋진 찾기!Awesome find on the named queries!
- 1
- 2017-07-30
- Kaji
-
네,명명 된 쿼리도 제 질문에 답했습니다.Yep, named queries answered the question for me, too.
- 0
- 2017-07-31
- Dalton Rooney
-
우수한.'order_in_archive'의 가장 높은 값에서 가장 낮은 값으로 순서를 지정할 필요가 없기 때문에 order_clause에서 'value'의 중요성을 잘 모르겠습니다.Excellent. I'm not sure the significance of 'value' in that order_clause because it's not required as it will order it by the highest to lowest value of 'order_in_archive'.
- 1
- 2018-12-07
- Andrew Schultz
-
- 2011-04-24
WP Codex는이 문제를 해결할 때 실제로 혼란 스럽습니다.
실제로 orderby를 사용하기 위해meta_query 매개 변수가 필요하지는 않습니다. 대신meta_key 매개 변수를 사용합니다. WP Codex는 더 이상 사용되지 않지만 여기에 설정되어 있습니다. Wordpress 3.1에서meta_query와 함께 orderby를 어떻게 사용합니까? orderyby는 여전히meta_key.
그러면
<사전> <코드> query_posts (array ( 'post_type'=>'서비스', '주문'=>'ASC', 'orderby'=>'meta_value', 'meta_key'=>'order_in_archive' ))The WP Codex is actually confusing when addressing this problem.
You do not actually need the meta_query param to use the orderby, instead it uses the meta_key param, which although by WP Codex is deprecated is has been established here: How do you use orderby with meta_query in Wordpress 3.1? that orderyby still needs the meta_key.
so it should be
query_posts( array( 'post_type' => 'services', 'order' => 'ASC', 'orderby' => 'meta_value', 'meta_key' => 'order_in_archive' ) )
-
예,이것은이 쿼리를 수행하는 이전 방법이며 지정된이 쿼리에 대해 작동하는 것으로 보입니다.어쨌든 더 복잡한 쿼리의 경우 작동하지 않습니다.처리중인 알려진 문제이며 자세한 내용은trac 티켓 [# 15031] (http://core.trac.wordpress.org/ticket/15031) 및 [# 17065] (http ://core.trac.wordpress.org/ticket/17065)Well, yes, this is the old method for doing this query and it appears to be working for this specified one. Anyway, for more complex queries, it won't work. I found this is a known issue that is being taken care of, details can be found in trac tickets [#15031](http://core.trac.wordpress.org/ticket/15031) and [#17065](http://core.trac.wordpress.org/ticket/17065)
- 3
- 2011-04-24
- Maor Barazany
-
- 2017-07-06
간단합니다 :
다음은 내 코드입니다.
query_posts(array( 'post_type' => 'directors', 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'director_weight', 'meta_key' => 'director_weight' ) );
주요 세부 사항 :include
meta_key
,내 코드는meta_key
가 포함되지 않으면 주문하지 않았습니다. 그게 다입니다.다음은
directors
에 따른director_weight
사진 목록의 전체 코드입니다.<?php query_posts(array( 'post_type' => 'directors', 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'director_weight', 'meta_key' => 'director_weight' ) ); while (have_posts()) : the_post(); ?> <li <?php echo get_field('director_weight') ?>> <img src="<?php echo get_field('director_imagen') ?>"> </li> <?php endwhile; wp_reset_query(); ?>
It´s easy:
Here is my code:
query_posts(array( 'post_type' => 'directors', 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'director_weight', 'meta_key' => 'director_weight' ) );
The main detail is: include
meta_key
, my code didn´t order unlessmeta_key
is included, and that's all:Here is the full code of a list of
directors
pictures order bydirector_weight
:<?php query_posts(array( 'post_type' => 'directors', 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'director_weight', 'meta_key' => 'director_weight' ) ); while (have_posts()) : the_post(); ?> <li <?php echo get_field('director_weight') ?>> <img src="<?php echo get_field('director_imagen') ?>"> </li> <?php endwhile; wp_reset_query(); ?>
-
- 2015-08-07
를 사용하지 마세요.$meta_query = new WP_Meta_Query( $meta_query_args ); $meta_query_args = array( 'post_type' => 'services', 'order' => 'ASC', 'meta_key' => 'your_key', 'orderby' => 'meta_value', //or 'meta_value_num' 'meta_query' => array( array('key' => 'order_in_archive', 'value' => 'some_value' )));
Don't use query_posts.
$meta_query = new WP_Meta_Query( $meta_query_args ); $meta_query_args = array( 'post_type' => 'services', 'order' => 'ASC', 'meta_key' => 'your_key', 'orderby' => 'meta_value', //or 'meta_value_num' 'meta_query' => array( array('key' => 'order_in_archive', 'value' => 'some_value' )));
Use the WP_Meta_Query parameters
-
- 2012-12-28
잘 작동하는 것으로 나타났습니다.
<?php query_posts( array( 'posts_per_page' => '-1', 'post_type' => 'services', 'order' => 'DESC', 'meta_key' => '_order', 'orderby' => 'meta_value_num', //or 'meta_value_num' ) );
I found this to work quite well.
<?php query_posts( array( 'posts_per_page' => '-1', 'post_type' => 'services', 'order' => 'DESC', 'meta_key' => '_order', 'orderby' => 'meta_value_num', //or 'meta_value_num' ) );
-
문제는 새로운`meta_query` 매개 변수와 함께 작동 할`orderby`를 가져 오는 것에 관한 것이며,오래되었지만 여전히 작동하는`meta_key`/`meta_value` 매개 변수에 관한 것입니다.또한`query_posts` 사용을 장려하지 말아야합니다.The question is about the new-ish `meta_query` parameter and getting an `orderby` to work with it, and not about the older but still functional `meta_key`/`meta_value` parameters. Also, let's not encourage the use of `query_posts`.
- 3
- 2012-12-28
- s_ha_dum
-
이 답변에는 여러 가지 나쁜 사례가 포함되어 있습니다. -1 사용,query_posts 사용하여 문자열로 전달.제거해야합니다.This answer contains multiple bad practices: using -1, passing it as a string, using query_posts. It should be removed.
- 0
- 2019-03-01
- Ihor Vorotnov
-
- 2017-01-19
날짜를 내림차순으로 정렬하는 데 필요한 맞춤 이벤트 날짜 세트가 있습니다.내 사용자 지정 이벤트 날짜가 내 wp_postmeta 테이블에 저장되었고 일반적으로post_date 또는 수정 된 날짜와 다르기 때문에 다음과 같이 효과가있었습니다.
$args = array( 'post_type' => 'events', // my post type - yours can be 'posts' 'post_status' => 'publish', // only get posts with this status 'orderby' => 'meta_value', // orderby the meta_value of the following meta_key 'meta_key' => 'my_custom_eventdate', // the custom meta_key name 'order'=> 'DESC' // sort descending ); $posts = new WP_Query($args);
다음과 같이 $posts를 반복 할 수 있습니다.
foreach($posts->posts as $p){ $post_id = $p->ID; // and so on ... // # example of how I retrieve my event date $event = get_post_meta($post_id, 'my_custom_eventdate', true); }
I had a set of custom event dates I needed to sort by date descending. Since my custom event date was stored in my wp_postmeta table, and was typically different to the post_date or modified dates, this worked for me:
$args = array( 'post_type' => 'events', // my post type - yours can be 'posts' 'post_status' => 'publish', // only get posts with this status 'orderby' => 'meta_value', // orderby the meta_value of the following meta_key 'meta_key' => 'my_custom_eventdate', // the custom meta_key name 'order'=> 'DESC' // sort descending ); $posts = new WP_Query($args);
You can then loop through $posts like so:
foreach($posts->posts as $p){ $post_id = $p->ID; // and so on ... // # example of how I retrieve my event date $event = get_post_meta($post_id, 'my_custom_eventdate', true); }
-
- 2019-03-17
이 작업은
$args = array( 'post_type' => 'services', 'order' => 'ASC', 'orderby' => 'order_clause', 'meta_query' => array( 'order_clause' => array( 'key' => 'order_in_archive' )));
order_clause의 키를 제공하는 데만 필요합니다.
This work for me,
$args = array( 'post_type' => 'services', 'order' => 'ASC', 'orderby' => 'order_clause', 'meta_query' => array( 'order_clause' => array( 'key' => 'order_in_archive' )));
Only needed to provide the key for the order_clause
아시다시피 WP3.0부터는 사용자 지정 고급 쿼리에 대한 옵션이 있습니다. 현재meta_key,meta_value와 같은 맞춤 필드의 일부 쿼리 매개 변수는 새로운meta_query 매개 변수에 대해 지원이 중단되었습니다 ( 여기 참조 ). )
새로운 구문으로 매우 간단한 쿼리를 시도합니다. 지정된meta_key (order_in_archive)를 포함하는 특정post_type (서비스)에 의해 게시되는 쿼리는 예상대로 잘 진행됩니다. 하지만-나는meta_value로 쿼리를 정렬하고 싶지만 성공하지 못했습니다.
이것은 내 검색어입니다-
<사전> <코드> query_posts ( array ( 'post_type'=> '서비스', '주문'=> 'ASC', 'orderby'=> 'meta_value', 'meta_query'=> 정렬( array ( 'key'=> 'order_in_archive')) ) );나는 또한meta_value_numeric과meta_value로 orderby를 시도했지만 어떤 경우에도 결과는 게시 날짜별로 정렬됩니다 (일반 게시물처럼). 누구든지 이것을 어떻게 할 수 있는지 알고 있습니까?
감사합니다