2013-05-17 5 views
2

각 게시물에는 게시 된 날짜와 "자원 필드"가 있습니다. 여기에는 날짜가있는 다른 필드 (게시 된 날짜와 동일하지 않음)가 있습니다. 누군가가 어떻게 자원 필드 날짜에 액세스 할 수 있는지 말해 줄 수 있습니까? 게시물이 있고 각각의 카테고리에 대해 "resource-field"-> date desc로 정렬해야합니다.사용자 정의 필드별로 게시물 정렬

이 쿼리하지만 작동하지 않습니다 ...

<?php $terms = get_terms('resources-categories', array('hide_empty' => false)); ?> 
<?php foreach($terms as $term): ?> 
<ul> 
<?php 
$query = new WP_Query(array(
      'post_type' => 'resources', 
      'resources-categories' => $term->slug, 
      'posts_per_page' => '-1', 
      'meta_key' => 'date', 
      'meta_value' => date('F Y'), 
      'meta_compare' => '>', 
      'orderby' => 'meta_key', 
      'order' => 'DESC', 
      'post_parent' => 0) 
      ); 
if ($query->have_posts()) : $count = 0; 
while($query->have_posts()) : 
$query->the_post(); ?> 
<li> 
//print code... 
</li> 
<?php endwhile; endif; ?> 

답변

2

은 내가 $args 배열의 meta_query 속성을 사용하여 더 나은 운이 경향이있다. 다음은이 속성을 사용하여 재구성하여 예입니다

$today = date('Y-m-d'); 
$args = array(
    'post_type' => 'resources', 
    'posts_per_page' => '-1', 
    'meta_key' => 'date', 
    'meta_query' => array(
     array(
      'key' => 'date', 
      'value' => $today, 
      'type' => 'date', 
      'compare' => '>' 
     ) 
    ), 
    'orderby' => 'meta_value_num', 
    'order' => 'DESC', 
    'post_parent' => 0 
); 

노트의 몇 : 나는 당신의 날짜 형식을 변경 한

  • 알 수 있습니다. 원래 형식은 해당 달의 텍스트 표현을 사용하려고했습니다. WordPress는 문자열로 표현되는 값을 "비교"할 수 없습니다. 귀하의 날짜가 yyyy-mm-dd의 표준 SQL 형식으로 저장되고 있다고 가정합니다. 그러나 이것은 당신에게 중요한 장애물이 될 수 있습니다. 날짜의 실제 형식이 (데이터베이스에 저장된대로) 무엇인지 알 수 있고 그 형식을 $today 변수와 일치시킬 수 있어야합니다.

  • 여기에 meta_key 값이 포함되어 있습니다. 그것은 중복 된 것처럼 보이지만 그렇지 않습니다. 정렬 작업에 필요합니다.

  • 마지막으로 'resources-categories' => $term->slug 속성을 포함했지만 쿼리에 아무런 영향을 미치지 않습니다. (그래서 나는 그것을 제거했다). 택 소노 미에 대해 추가로 쿼리해야하는 경우 $args 배열의 tax_query 속성을 확인해야합니다.

희망이 조금 재미 있습니다!

+0

대단히 죄송합니다. 늦어서 고맙습니다. 나는 당신의 코드를 가져 갔고 약간의 변경을가 했더니 작동합니다. – Florin

+0

듣기 좋음! 변경 한 내용이 다른 사람들에게 도움이 될 수 있다면 (예 : 코드의 오타) 여기에 의견을 말하면 답변을 업데이트 할 것입니다. 원하는 경우 답변을 "수락"할 수도 있습니다. –

관련 문제