source

카테고리가 있는 모든 WordPress 게시물을 추출하기 위한 SQL 쿼리

manysource 2023. 4. 5. 22:03

카테고리가 있는 모든 WordPress 게시물을 추출하기 위한 SQL 쿼리

WordPress DB에서 관련 카테고리와 함께 모든 게시물을 추출해야 하는데 이 쿼리를 작성하는 방법을 잘 모르겠습니다.이미 몇 번 시도했지만 아무런 기쁨이 없었으니 도와주면 고맙겠어?

편집: 제가 이미 시도한 것은 다음과 같습니다.

SELECT post_title, wpr.object_id, wp_terms.name
FROM wp_terms
INNER JOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
INNER JOIN wp_term_relationships wpr ON wpr.term_taxonomy_id = 
wp_term_taxonomy.term_taxonomy_id
INNER JOIN wp_posts ON ID = wpr.object_id
WHERE taxonomy = 'category' 
AND post_type = 'post' 
ORDER by post_title

이것은 효과가 있는 것 같습니다만, 제 DB에는 1343개밖에 없는 것으로 알고 있는 1,553개가 반환됩니다.

편집: 조금 전에 다른 SQL 쿼리에서 동일한 작업을 수행했는데 리비전 및 기타 게시 유형을 가져오는 중이었지만 post_type = 'post'를 사용하여 해결되었다고 생각했습니다.

편집: DB의 카테고리 수를 보면 1553 - 1343 = 216을 빼면 6에서 6을 뺀 216이 나옵니다.1553의 총수는 wp_terms 표에서 나온 것이라고 생각합니다.wp_terms 표에서는 제외되어야 하며, 게시된 투고에서 활성화된 것만 표시되어야 합니다.

편집: 또 다른 가능성은 각 투고가 여러 카테고리를 가질 수 있기 때문에 투고가 많아지는 이유입니다(1553).그럼 어떻게 하면 각 투고를 여러 카테고리로 나눌 수 있을까요?

감사합니다!

이것이 나에게 효과가 있었던 최종적인 대답이다.

SELECT DISTINCT
post_title
, post_content
,(SELECT meta_value FROM wp_postmeta WHERE wp_postmeta.meta_key = 'Asking Price (US\$)' AND wp_postmeta.post_id = wp_posts.ID) AS "Asking Price (US\$)"
,(SELECT group_concat(wp_terms.name separator ', ') 
    FROM wp_terms
    INNER JOIN wp_term_taxonomy on wp_terms.term_id = wp_term_taxonomy.term_id
    INNER JOIN wp_term_relationships wpr on wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    WHERE taxonomy= 'category' and wp_posts.ID = wpr.object_id
) AS "Categories"
,(SELECT group_concat(wp_terms.name separator ', ') 
    FROM wp_terms
    INNER JOIN wp_term_taxonomy on wp_terms.term_id = wp_term_taxonomy.term_id
    INNER JOIN wp_term_relationships wpr on wpr.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id
    WHERE taxonomy= 'post_tag' and wp_posts.ID = wpr.object_id
) AS "Tags"
FROM wp_posts
WHERE post_type = 'post' 
ORDER BY
post_title
, post_content
/* Query for fetch post/posts using post user, post category and post_title */
$select wp_select.post_filength, wp_filength.post_content, wp_display_count, wp_users.display_name, wp_display.name송신원 wp_postsJOIN wp_term_relations ON(wp_posts).ID = wp_term_relations.object_id)JOIN wp_term_relations ON(wp_term_relations.term_relations.term_relations_id = wp_relations.term_relations_id)LEFT JOIN wp_time ON (wp_time.term_id = wp_term_time.term_id)JOIN wp_users ON(wp_posts).post_author = wp_users.아이디)Where wp_term_taxonomy.term_id IN($bycat)AND wp_users.ID = $byuserAND wp_posts.post_type = 'post'AND(wp_posts).post_content Like '$bytitle' OR wp_posts.post_title Like '$bytitle')AND wp_posts.post_status = '실행'wp_posts로 주문합니다.post_modified DESC";

/*---------------------------------------------------$result first = $wpdb-> get_syslogs);
        
foreach ($result first as $result ){echo $result - > post_displays' 입니다.
';> '$result-> display_name' 입니다.
';name '$result-> name' 입니다.
$syslog $result - > echo_count' 입니다.
';}

언급URL : https://stackoverflow.com/questions/13071035/sql-query-to-extract-all-wordpress-posts-with-categories