2013-11-16 2 views
0

У меня есть код, как это,В Wordpress я могу использовать WP_Query с меткой времени?

$date_arg = array(
     'after' => array(
      'year' => $num_days_ago['year'], 
      'month' => $num_days_ago['mon'], 
      'day' => $num_days_ago['mday'], 
    ), 
     'inclusive' => false, 
    ); 
    $query = new WP_Query(array ('date_query' => $date_arg, 'post_type' => $post_type ... 

Это работает хорошо, но я должен указать точную дату. Можно ли использовать запрос «timestamp» для запроса.

Например, я хочу запросить сообщения, которые находятся в течение 24 часов. Я могу получить временную метку

$ts = time() - DAY_IN_SECONDS 

Возможно получить сообщения, созданные после $ ts?

+0

Я думаю, что вы должны использовать ' meta_query' для этого. –

ответ

1

Вы можете попробовать построения дату с помощью date() и strtotime() функции.

$date_query = array(
    'after' => date('Y-m-d H:i:s', strtotime('-24 hours')) 
); 

Я также рекомендую взглянуть на этот удобный сайт - http://www.viper007bond.com/tag/wp_date_query/

0

ИМХО лучше так:

function filter_where($where = '') { 
    $where .= " AND post_date > '" . date('Y-m-d H:i:s', strtotime('-24 hours')) . "'"; 
    return $where; 
} 
add_filter('posts_where', 'filter_where'); 

и более общий:

// Create a new filtering function that will add our where clause to the query 
function filter_where($where = '') { 
    // posts in the last x days 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";// here 30 
    return $where; 
} 

add_filter('posts_where', 'filter_where'); // add the filter before setting object or before loop 
$query = new WP_Query($query_string); 
remove_filter('posts_where', 'filter_where'); // .. and do not forget to remove it 
0

Или вы могли бы попробовать что-то вроде этого

SELECT post_title, IF (post_date_gmt < (DATE_SUB(CURDATE(), INTERVAL 24 HOUR)), 'false', 'true') AS A FROM wp_posts 
WHERE post_type = "post" AND post_status = "publish" 

http://www.w3schools.com/sql/func_date_sub.asp

Смежные вопросы