source

배열별로 정렬된 ID 배열을 가진 WP_쿼리

gigabyte 2023. 3. 10. 22:03
반응형

배열별로 정렬된 ID 배열을 가진 WP_쿼리

아이디 배열이 있는데 그 게시물을 WP_Quey()까지 받고 싶습니다.

$myarray = $ids;
$args = array( 'post__in' => $myarray);
// The Query
$the_query = new WP_Query( $args );

날짜별 결과 정렬 $myarray 항목별로 정렬하고 첫 번째 결과는 $myarray의 첫 번째 ID가 됩니다.

Wordpress 3.5 이상에서는'orderby'=>'post__in'다음 내용을 작성해야 합니다.

$myarray = $ids;    
$args = array('post__in'=> $myarray, 'orderby'=>'post__in');
// The Query
$the_query = new WP_Query( $args );

내 대답이 너무 늦었다는 건 알지만, 난 정답을 맞춰야 해.

노력한 대로'orderby'=>'post__in':

예를 들어 동적으로 업데이트된 쿠키를 가지고 있고 최근에 본 제품 블록에 제품을 로드해야 합니다. 이 블록의 첫 번째 제품은 마지막으로 봐야 합니다.

네 알겠습니다.

아이디 1720, 19626, 19173, 19188이 있어요

$args = array('post__in'=> $myarray, 'orderby'=>'post__in');

다음 문자열이 내 제품을 순서대로 반환했습니다.

19626년, 19188년, 19173년, 1720년 그리고 이건 내 명령이 아니야.이 원인은 기본적으로 매개 변수 DESC를 정렬합니다.WP_Query기회는 딱 한 번 뿐이야ASCM H의 매우 슬픈 대답입니다.

내 대답은 아주 영리하다.

orderby=>'post_in'은 필요 없습니다.

우리는 다음을 얻어야 한다.

$myarray = $ids;    
$args = array('post__in'=> $myarray);
$the_query = new WP_Query( $args );

그 후, 다음과 같이 실시합니다.

foreach($myarray as $myarray_id){
 while ( $the_query->have_posts()) {
   $the_query->the_post();
   if($post->ID == $myarray_id){
     //DO SOMETHING
   }
 }
}

바로 그거야!

올바른 주문 전송:

$id_array = array(5,2,3,7);

foreach($id_array as $id_array_v)
{
   $query = new WP_Query(array('post__in' => array($id_array_v)));

   while($query -> have_posts())
   {
      $query -> the_post();
      the_title();
   }
}

언급URL : https://stackoverflow.com/questions/22241487/wp-query-with-an-array-of-ids-order-by-array

반응형