메타 및 이전 날짜를 포함한 쿼리를 게시합니다.
나는 이 문제를 해결하기 위해 애쓰고 있다.wp_query
현재 투고에 할당되어 있는 커스텀 설정이 몇 가지 있습니다.첫 번째는 투고가 기능하고 있는지 여부입니다.두 번째는 투고가 종료되는 날짜입니다(결과에 표시되지 않습니다).기능에 관한 쿼리를 가지고 있습니다만, 이 종료일을 이 기능에 적용하면 됩니다.다음은 '기능'을 사용한 쿼리 작업 검색입니다.
WP_Query('meta_key=skyali_feature&showposts=4&orderby=post_date');
종료일은 로 설정됩니다.wp_postmeta
표가 어디에 있는지meta_key
'the_date'와meta_values
'05/16/2013 05:24'처럼 보입니다.위의 쿼리를 편집하고 싶습니다만, 「the_date」가 설정되어 있는 경우는, 「the_date」가 오늘 날짜보다 큰 경우에만 투고가 포함되어 있습니다.
실패한 시도는 다음과 같습니다.
WP_Query(
'meta_key=skyali_feature&meta_key=the_date&meta_compare=>=&meta_value='
.date('d/m/Y H:i')
.'&showposts=4&orderby=post_date&orderby=the_date'
);
최근에 아주 비슷한 일을 해야 했고 결국엔 그 일을 해야 했어요.meta_query
대신 속성을 지정합니다.다음과 같은 작업을 수행할 수 있습니다.
$today = date('Ymd');
$args = array(
'post_type' => 'post',
'posts_per_page' => '4',
'meta_key' => 'the_date',
'meta_query' => array(
array(
'key' => 'skyali_feature'
),
array(
'key' => 'the_date',
'value' => $today,
'compare' => '>='
)
),
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$your_custom_query = new WP_Query($args);
몇 가지 메모...
이 예에서는 날짜별로 필터링만 하면 되는데, 날짜/시간을 자신의 날짜로 필터링해야 할 것 같습니다. (첫 번째 줄만 조정하면 됩니다.)
$today
원하는 형식을 사용하여 변수를 지정합니다).사용하다
posts_per_page
대신showposts
.showposts
는 권장되지 않습니다.다음 명령어가 포함되어 있는 점에 주의해 주세요.
meta_key
2회(어레이의 최상위 레벨에 1회, 또 1회)의 요소로서meta_query
어레이. 이 방법으로 포함하지 않으면 키를 기준으로 결과를 정렬할 수 없는 알려진 버그가 있습니다.나도 한동안 싸웠어!
이게 도움이 됐으면 좋겠는데, 재밌게 놀아요!
[edit] 사용자 이름 추가 안 함skyali_feature
키를 어레이에 되돌립니다.
날짜 데이터 유형이 있는 고급 사용자 지정 필드 플러그인을 사용하는 사용자는 오늘보다 크거나 같은 날짜에 대해 다음과 같이 하십시오.
$today = date('Ymd');
$args = array(
'post_type' => 'post',
'meta_key' => 'end-date',
'meta_query' => array(
array(
'key' => 'end-date'
),
array(
'key' => 'end-date',
'value' => $today,
'compare' => '>='
)
),
'orderby' => 'meta_value',
'order' => 'ASC'
);
$your_custom_query = new WP_Query($args);
커스텀 메타데이터 매니저를 사용하고 있는 유저에게는,datepicker
필드는 타임스탬프로 저장됩니다.
따라서 유사한 경우 위의 예가 작동하지 않으며 php가 비교해야 할 값을 분류하도록 할 수 있습니다.그리고 하루 전 23시 59분 59초에 타임스탬프가 작동하게 됩니다.
$yesterday = strtotime('yesterday 23:59:59');
$args = array(
'post_type' => 'post',
'meta_key' => 'end-date',
'meta_query' => array(
array(
'key' => 'end-date'
),
array(
'key' => 'end-date',
'value' => $yesterday,
'compare' => '>='
)
),
'orderby' => 'meta_value',
'order' => 'ASC'
);
$your_custom_query = new WP_Query($args);
블로그의 시간대 설정도 고려할 경우 다음 예시와 같이 current_time()을 사용합니다.
$now = current_time('timestamp');
$yesterday = mktime(23, 59, 59, date('n',$now), date('j',$now)-1);
언급URL : https://stackoverflow.com/questions/16596551/posts-query-including-meta-and-greater-than-date
'programing' 카테고리의 다른 글
중첩된 개체를 쿼리하려면 어떻게 해야 합니까? (0) | 2023.03.11 |
---|---|
html 입력의 속성을 덮어쓸 수 있는 것은 무엇입니까? (0) | 2023.03.11 |
스프링 요구 JSON을 생성 및 사용하는 컨트롤러의 매핑 (0) | 2023.03.06 |
get_home_url()은 현재 URL만 반환합니다. (0) | 2023.03.06 |
angular.js는 어떻게 내부 HTML을 재평가/재컴파일합니까? (0) | 2023.03.06 |