2017-04-10 1 views
0

우리는 워드 프레스 사이트를 가지고 있으며, 사용자 정의 포스트 유형의 아카이브 페이지에서 항상 특정 포스트를 맨 위에 올리고 싶습니다.wordpress : 나머지 앞에 맨 위로 강제 레코드

우리는 functions.php에서 'pre_get_posts'를 사용하여 SQL을 편집하고 있습니다.

는 직접 MySQL의에서 우리가 사용할 수 있습니다 ... ORDER를 CASE BY = 7075이 THEN 0 ELSE 1 END

그러나 우리는 절 '에 의해 순서가'functions.php 에서 호출하는 것이 위선적 인 말투 (우리는 ID 언제 SQL 문을 페이지에 덤프하여 처리 방법을 확인하십시오)

$ query-> set ('orderby', 'CASE WHEN ID = 7075 THEN 0 ELSE 1 END'); ('... ORDER BY wp_posts.ID DESC'로 변경)

$ query-> set ('orderby', '(ID = 7075)'); $ query-> set ('order', 'DESC'); (이 경우 무시되고 기본값은 'ORDER BY wp_posts.post_date DESC')

$ query-> set ('orderby', array ('CASE WHEN wp_posts.ID = 7075 THEN 1 ELSE 2 END '=>'ASC ')); (이 항목과 관련된 주문 조항이 전혀 없습니다.)

누구든지 이전에이 작업을 수행 했습니까? 우리는 페이지에 대한 사용자 지정 SQL을 작성하고 싶지 않습니다. 감사 어떤 도움 :)

V

답변

0

나는 것 두 쿼리, 바로 상단에 원하는 포스트를 출력 하나 상단에있는 제외한 모든 게시물을 출력 하나를 수행합니다.

+0

감사합니다. Jeremy :) 나는 지금까지 토끼의 구멍을 내리고있었습니다. 나는 왼쪽을보고 싶지 않았습니다. 감사합니다. – Vauneen