Можно ли использовать Wordpress API (query_posts, WP_Query, get_posts и т. Д.) Для получения будущих сообщений на основе пользовательской таксономии? - PullRequest
1 голос
/ 24 июня 2010

Я ищу способ извлечения сообщений в WordPress, которые запланированы для будущей публикации на основе пользовательского запроса таксономии. Поиск будущих сообщений в противном случае просто

query_posts('post_status=future');

Но добавление пользовательской таксономии не работает должным образом

query_posts('musicians=paul-mccartney&post_status=future'); 

Я закончил тем, что использовал $ wpdb и написал SQL от руки и соединил вместе таблицы терминов, таксономии и отношений.

$sql = "SELECT post.* 
  FROM {$wpdb->prefix}terms term 
  JOIN {$wpdb->prefix}term_taxonomy taxonomy
  JOIN {$wpdb->prefix}term_relationships relationship
  JOIN {$wpdb->prefix}posts post
  WHERE term.term_id = taxonomy.term_id
  AND relationship.term_taxonomy_id = taxonomy.term_taxonomy_id
  AND term.slug = '%s'
  AND taxonomy.taxonomy = '%s'
  AND post.ID = relationship.object_id";

if($posts = $wpdb->get_results( $wpdb->prepare($sql, $term->slug, $term->taxonomy) )):      
  foreach($posts as $post):
   setup_postdata($post);
     the_ID().' '.the_title().'\n<br/>';
  endforeach;
endif;

Это работает, но я надеюсь, что есть способ сделать то же самое, но с использованием WP API (query_posts, WP_Query, get_posts и т. Д.)!

1 Ответ

1 голос
/ 24 мая 2011

Да, вы можете.

$events = get_posts('numberposts=-1&post_type=events&musicians=paul-mccartney&post_status=future&order=ASC');
foreach($events as $event){
    setup_postdata($event);
    echo '<a href="'.get_permalink($event->ID).'">'.$event->post_title.'</a>';
}

Вы можете использовать те же параметры, что и в, http://codex.wordpress.org/Function_Reference/WP_Query#Parameters

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...