programing

SQL을 통해 기능 이미지가 포함된 워드프레스 게시물 검색

bestprogram 2023. 6. 11. 11:05

SQL을 통해 기능 이미지가 포함된 워드프레스 게시물 검색

Wordpress 외부의 PHP 스크립트에서 이 쿼리를 사용하여 특징 이미지가 있는 항목을 검색하고 있습니다.

SELECT  ( SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS url 
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id'

...그리고 그것은 잘 작동합니다.

하지만 이렇게 하면 풀사이즈 이미지 URL을 얻을 수 있습니다.이러한 이미지의 '중간' 또는 '엄지갑' 크기를 검색해야 합니다.

◦이를 달성할 방법이 있습니까?

다음은 응답입니다.

SELECT TITRE,DESCR,URL, CONCAT(LEFT(IMG, LENGTH(IMG) - LOCATE('.', 
REVERSE(IMG))),'-150x150.',SUBSTRING_INDEX(IMG, '.', -1)) AS IMG FROM (
SELECT    
p.`post_title` AS TITRE, 
(SELECT `meta_value` FROM wp_postmeta WHERE `post_id` = p.`ID` and `meta_key`='_yoast_wpseo_metadesc') AS DESCR,
p.`guid` AS URL,
(SELECT `guid` FROM wp_posts WHERE id = m.meta_value) AS IMG
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id') TT

where DESCR is not null

위에서 수정된 다음 질문은 단순히 마지막 네 개의 게시물과 그들의 특징적인 이미지를 잡는 것이었던 저의 특별한 문제를 해결했습니다.게다가 예쁜 URL을 구성할 수 있는 post_name.

SELECT title, post_name, date, content, CONCAT(LEFT(image, LENGTH(image) - LOCATE('.', REVERSE(image))),'-150x150.',SUBSTRING_INDEX(image, '.', -1)) AS image
FROM (
  SELECT    
  p.post_title AS title, 
  p.post_status AS 'status', 
  p.post_date AS date,
  p.post_content AS content,
  p.post_name AS post_name,
  (SELECT `guid` FROM wp_posts WHERE id = m.meta_value) AS image
  FROM wp_posts p, wp_postmeta m
  WHERE p.post_type = 'post'
  AND p.post_status = 'publish'
  AND p.id = m.post_id
  AND m.meta_key = '_thumbnail_id'
  ORDER BY date DESC
  LIMIT 4
) TT

물론 여기에서 다음을 사용하여 발췌 등을 쉽게 만들 수 있습니다.

for($i=0; $i< $num_rows; $i++){  
  $post_content = mysql_result($query_result, $i, "content"); 
  $post_excerpt = substr($post_content, 0, 90); 
  $post_permalink = $post_url . mysql_result($query_result, $i, "post_name");

  echo $post_permalink; //etc

}

썸네일 크기에 대해 이 쿼리를 시도할 수 있습니다. 중간 이미지의 경우 치수를 알고 있다면 올바른 크기를 확신할 수 없습니다. 하위 문자열_INDEX를 사용하여 아래에서 만든 것처럼 사용자 지정 별칭을 만들어 파일 확장명을 얻은 다음 CONCAT 함수를 사용했습니다.post_name열 및 치수 + 확장자, 마찬가지로 중간 크기에 대해 이 작업을 수행할 수 있습니다. 모든 업로드가 업로드 폴더로 이동하므로 생성된 엄지손가락 이름을 분석할 수 있습니다.original attachment name + -150x150 or other dimensions그래서 이 논리에서 당신의 엄지손가락은 차원이 있는 이름을 얻습니다. 포스트의 첨부 파일은 post_id와 함께 post_dumb에 저장되고 키 이름 _wp_dumbersion_dumbersion_dumbersion은 서로 다른 크기의 파일에 대한 모든 정보를 저장하지만 mysql 쿼리에서는 데이터를 직렬화할 수 없습니다.

SELECT    
CONCAT(p.`post_name` ,'-150x150.',
SUBSTRING_INDEX(( SELECT `guid` FROM wp_posts WHERE id = m.meta_value ), '.', -1) )    
 AS `thumbnail`,
 (SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS `full`
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id'

이 쿼리는 제가 150*150 사이즈의 썸네일을 얻는 데 도움이 됩니다. 당신에게도 도움이 되기를 바랍니다.

SELECT    
    p.ID,
    p.post_title AS title, 
    p.post_name AS post_name,
   (SELECT meta_value from wp_postmeta where post_id = m.meta_value and meta_key='_wp_attachment_metadata') AS meta_value
FROM 
    wp_posts p, 
    wp_postmeta m
WHERE
        p.post_type = 'post'
    AND p.post_status = 'publish'
    AND p.id = m.post_id
    AND m.meta_key = '_thumbnail_id'
ORDER BY 
    p.post_date DESC
LIMIT 5;

그런 다음 meta_value와 함께 직렬화 해제 PHP 함수를 사용합니다.

언급URL : https://stackoverflow.com/questions/19067679/retrieve-wordpress-posts-with-featured-image-via-sql