programing

사용자 지정 게시물 유형 및 다중 사용자 지정 필드에 대한 SQL 쿼리

mailnote 2023. 10. 3. 11:14
반응형

사용자 지정 게시물 유형 및 다중 사용자 지정 필드에 대한 SQL 쿼리

저는 SQL DB에서 테이블을 만들기 위해 WP Data Table을 사용하고 있습니다.단어에서 백엔드를 누르기 위한 예제 코드는 다음과 같습니다.

SELECT post_id, post_date
FROM wp_posts
WHERE post_type =  'custom_post_type'
AND post_status =  'publish'

포스트 메타에서 사용자 지정 필드 값을 가져오려고 합니다.지금까지 제가 가진 것은...

SELECT post_id, post_date
FROM wp_posts
WHERE post_type =  'custom_post_type'
AND post_status =  'publish'
AND SELECT custom_field_key_1, custom_field_key_2, custom_field_key_3
FROM wp_postmeta
WHERE post_id = post_id

업데이트:

그 p를 찾았습니다.post_id 대신 ID가 필요했고 meta_key를 검색해야 합니다.뭔가...

SELECT p.post_title, 
       p.post_date,
       pm.meta_key = 'custom_field_key'
FROM wp_posts p 
INNER JOIN wp_postmeta pm 
ON p.ID = pm.post_id
WHERE p.post_type = 'custom_post_type'
AND p.post_status = 'publish'

사용.INNER JOIN:

SELECT p.post_id, 
       p.post_date, 
       pm.custom_field_key_1, 
       pm.custom_field_key_2, 
       pm.custom_field_key_3
FROM wp_posts p 
   INNER JOIN wp_postmeta pm 
       ON p.post_id = pm.post_id
WHERE p.post_type = 'custom_post_type'
   AND p.post_status = 'publish'

표준 SQL이 지원된다고 가정하면 다음과 같은 것이 필요합니다(테스트되지 않음).

SELECT w.post_id, w.post_date, m.custom_field_key_1, m.custom_field_key_2, m.custom_field_key_3
FROM wp_posts w, wp_postmeta m
WHERE post_type =  'custom_post_type' AND post_status =  'publish'
AND w.post.id = m.post.id

이거 먹어보세요.

SELECT p.post_id, p.post_date,
    pm.custom_field_key_1, pm.custom_field_key_2, pm.custom_field_key_3
FROM wp_posts p
JOIN wp_postmeta pm ON p.post_id = pm.post_id
WHERE p.post_type =  'custom_post_type'
AND p.post_status =  'publish'

네가 답변을 업데이트 했음에도 불구하고 알겠습니다.예를 들어 이 문제를 해결했습니다.

SELECT p.ID, 
       p.post_title, 
       pm.meta_value as 'value1', 
       pma.meta_value as 'value2'

FROM  wp_posts p 
      INNER JOIN wp_postmeta AS pm  ON pm.post_id  = p.ID
      INNER JOIN wp_postmeta AS pma ON pma.post_id = p.ID

WHERE
      pma.meta_key = 'custom_field_key_1' AND
      pm.meta_key = 'custom_field_key_2' AND

      p.post_type = 'your_post_type' AND 
      p.post_status = 'publish'

그래서 나는 가명을 사용합니다.AS동일한 표에 호스트된 값의 경우,INNER JOIN위해서wp_postmeta그리고.post_id그리고 그게 다에요.

참조:여러 내부 조인 동일한 표

이렇게 하면 게시물과 선택한 사용자 정의 필드가 있는 배열을 얻을 수 있습니다.

array(1) {
    [0]=> object(stdClass)#341 (4) {
          ["ID"]=>    string(1) "1123"
          ["post_title"]=>  string(15) "Your post title"
          ["custom_field_key_1"]=> string(12) "Your value 1 "
          ["custom_field_key_2"]=> string(29) "Your value 2"
}

필요한 만큼의 별칭과 meta_key를 추가할 수 있습니다.도움이 되길 바랍니다!

언급URL : https://stackoverflow.com/questions/15169010/sql-query-for-custom-post-type-and-multiple-custom-fields

반응형