2013-12-04 2 views
1

Я пытаюсь запросить сообщения в Wordpress, насколько это хорошо. Тем не менее, я хотел бы показать сообщение с определенной меткой «информация» перед всеми (даже перед липкой).Начальные запросы с определенной таксономией

Я думал, что я мог бы просто объединить запросы в массиве, как это:

$posts = array('post__in' => $sticky, 'order' => $order_posts, 'ignore_sticky_posts' => 1, 'paged' => $paged); 
$infoposts = array('tag' => 'info', 'post__in' => $sticky); 

      query_posts (array_merge($infoposts, $posts)); 

Однако это только вывесить $ сообщения infoposts массива. Как мне получить оба, а затем сообщения с тегом «info»?

Как это сделать?

Спасибо!

ответ

0

array_merge объединяет ваши массивы, var_dump результат array_merge($infoposts, $posts), чтобы увидеть, что я имею в виду.

AFAIK Вам нужно будет сделать 2 отдельных запроса, один для липкой почты и другой для других сообщений.

- редактировать -

$sticky = get_posts($infoposts); 
$rest = get_posts($posts); 

$all = array_merge($sticky, $rest); 

foreach ($all as $post) : setup_postdata($post); ?> 
    <li> 
     <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
    </li> 
<?php endforeach; 
wp_reset_postdata(); // this is important ?> 

</ul> 

tldr: использовать get_posts вместо сообщения запроса

http://codex.wordpress.org/Function_Reference/query_posts http://codex.wordpress.org/Template_Tags/get_posts

+0

Окей, что имеет смысл, на самом деле. Однако, когда я запрашиваю их оба: $ infoposts сначала, а затем $ posts, они все равно отображаются в обычном порядке. Как мне сначала запросить $ infoposts? – Trekdrop

+0

Я отредактировал мой anwser, чтобы быть ясным, если это поможет проголосовать :) –