programing

WordPress 데이터베이스의 어디에 게시된 이미지 링크가 저장됩니까?

magicmemo 2023. 3. 22. 20:57
반응형

WordPress 데이터베이스의 어디에 게시된 이미지 링크가 저장됩니까?

WordPress 데이터베이스의 특징 영상 링크는 어디에 저장됩니까?에서 검색했습니다.wp_postmeta표지만 정확한 것은 알 수 없다post_id그리고.links.

이거 맞는건가요?누가 설명 좀 해주시겠어요?

피처 이미지 ID는 다음 위치에 저장됩니다.wp_postmeta와 함께meta_key불렀다_thumbnail_id. 예:

╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key      ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200     ║ 4       ║ _thumbnail_id ║ 48        ║
╚═════════╩═════════╩═══════════════╩═══════════╝

실제 섬네일링크는 다음에 표시됩니다.wp_posts와 함께post_typeattachment. 예:

╔════╦════════════╦═════════════════════════════════════════════════════╗
║ ID ║ post_type  ║ guid                                                ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 48 ║ attachment ║ http://example.com/wp-content/uploads/yourimage.png ║
╚════╩════════════╩═════════════════════════════════════════════════════╝

궁금해서...

  • wp_postmeta테이블은 다음 포스트에 대한 엔트리를 유지합니다.meta_key_thumbnail_id
  • meta_value어린애야post_id특집 이미지용
  • 그것을 이용해서post_id자세한 내용은 에서 입수할 수 있습니다.wp_posts그리고.wp_postmeta

종합해보면, 아이를 데려오는 방법은wp_posts포스트의 특집 이미지를 얻기 위해 노를 젓다XXX...

SELECT childpost.* 
FROM wp_posts childpost 
INNER JOIN wp_postmeta parentmeta ON (childpost.ID=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' 
AND parentmeta.post_id=XXX;

그리고 여기 같은 이미지의 메타 데이터가 있습니다.

SELECT childmeta.* 
FROM wp_postmeta childmeta 
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' 
AND parentmeta.post_id=XXX;

메타데이터에는,_wp_attached_file상대 경로 및_wp_attachment_metadata일부 PHP 직렬화 데이터가 포함되어 있습니다.

여기에 완전한 URL 이미지가 있는 내 sql이 있습니다.

SELECT concat((select option_value from wp_options where option_name ='siteurl'  limit 1),'/wp-content/uploads/',childmeta.meta_value)
FROM wp_postmeta childmeta 
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' and childmeta.meta_key = '_wp_attached_file'
AND parentmeta.post_id = POST_ID ;

select option_name from wp_options where option_name ='siteurl' 

결과는 이렇게 될 것이다

http://yourdomain/blog-wp/wp-content/uploads/2015/04/IMG_06062014_155904.png

rnevius의 답변이 맞는 것 같아도 결과는 다음과 같은 URL을 가진 이미지를 반환했습니다. http://www.example.com/ ? imagement _ id = 48 。내 경우 작동하지 않았습니다.

Wordpress 4.9.3에서 테스트 완료:

또 다른 해결책은_wp_attached_file대신 다음과 같이 입력합니다.

wp_postmeta

가치 검색_thumbnail_id…에.meta_key

meta_id   | post_id   | meta_key            | meta_value
200       | 4         | _thumbnail_id       | 48

wp_postmeta

어게인wp_postmeta, 값 검색_wp_attached_file…에.meta_key어디에post_id일치하고 있다meta_value이전 쿼리에서 발견되다

meta_id   | post_id   | meta_key            | meta_value
1020      | 48        | _wp_attached_file   | 2018/09/picture.jpg

쿼리:

SELECT wp.ID, wpm2.meta_value
FROM wp_posts wp
    INNER JOIN wp_postmeta wpm
        ON (wp.ID = wpm.post_id AND wpm.meta_key = '_thumbnail_id')
    INNER JOIN wp_postmeta wpm2
        ON (wpm.meta_value = wpm2.post_id AND wpm2.meta_key = '_wp_attached_file')

언급URL : https://stackoverflow.com/questions/28643654/where-is-the-post-featured-image-link-stored-in-the-wordpress-database

반응형