워드프레스에서
portfolio items로 컨텐츠들이 카테고리별로 등록된 상태입니다.
그런데 문제가 생긴게 이전사이트에서 잘 옮겨왔지만 몇백개가 되는 컨텐츠의 요약글을 바꿔야하는것입니다. ㅜㅜ
그래서 카테고리별로 포트폴리오를 찾아야하는데요. 뒤져보니
wp_posts에서 post_type='portfolio'가 포트폴리오이었고
카테고리는 wp_posts에 있는게 아니라 wp_term_relationships라는 다른 테이블에 있더군요.
예를들어 카테고리가 1이라는 포트폴리오를 찾으려면
wp_term_relationships에서 term_taxonomy_id가 1인 아이를 찾아야합니다.
그래서
select문으로 출력까지 해냈습니다.
SELECT * from
wp_posts join wp_term_relationships
on term_taxonomy_id=8
where wp_term_relationships.object_id = wp_posts.id
하지만 해당 카테고리의 요약글(post_excerpt)를
포트폴리오제목 + '/' + 포트폴리오게시일 <<--- 이렇게 변경하고
포트폴리오게시일에 표시형식을 yyyy-mm-dd에서 yyyy.mm.dd로 변경해야합니다.
그것또한 아래와 같이 샅샅이 뒤져내서 해냈습니다.
UPDATE wp_posts
SET post_excerpt = CONCAT(post_excerpt,concat(post_title,'/',replace(left(post_date,10),'-','.')))
이제 위의 나온 두쿼리를 이용해서
제가 원하는 특정 카테고리의 포스트의 요약글을 저렇게 업데이트해야하는데...
db자체는 워드프레스 수정하듯 간단한것만 바꿔왔어서 전혀모르겠네요 ㅠㅠ
고수님들 도와주세요...~~
안녕하세요~^^
뭔가 잘 이해는 안가지만
아래처럼 서브쿼리 만들면 안되는지요?
UPDATE wp_posts
SET post_excerpt = CONCAT(post_excerpt,concat(post_title,'/',replace(left(post_date,10),'-','.')))
WHERE ID IN (SELECT ID from
wp_posts join wp_term_relationships
on term_taxonomy_id=8
where wp_term_relationships.object_id = wp_posts.id)
그래도 안되면 워드프레스의 wpdb 사용해서 쿼리랑 php 코드랑 만들어서 해결볼수도 있겠지요.
질문 남긴치 몇분만에 바로 알려주시다니 .. 정말감사합니다 ㅠㅠ
아 물론, 바로되지는 않았어요... #1093에러 나오길래
찾아보니 mysql 같은경우 임시테이블로 감싸야 한다네요. 그래서 알려주신거에 사족을 붙여서...
UPDATE wp_posts
SET post_excerpt = CONCAT(post_excerpt,concat(post_title,'/',replace(left(post_date,10),'-','.')))
WHERE ID IN ( SELECT * FROM (SELECT ID from
wp_posts join wp_term_relationships
on term_taxonomy_id=8
where wp_term_relationships.object_id = wp_posts.id) test );
이렇게 하니 제가 원하던대로 원하는 카테고리의 포트폴리오 요약글을 노가다로 하지않고,
몇백개를 바로해버렸어요 다시한번 감사드립니다 ㅎㅎ
.ps 혹시나 이런 상황을 겪을 분들을 위해 남깁니다.
(포트폴리오로 리스트페이지에서 마우스오버시 썸네일 가리면서 텍스트(해당 이벤트와 이벤트날짜)가 생성되는 효과넣어야하는데,
지난이벤트가 몇백개... 요약글에는 해당 포트폴리오의 제목과 게시글을 일일이 복붙해야하는상황이었습니다.하지만 쿼리한번으로 퇴근시간이 쫌더 가까워졌습니다.)