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
'programing' 카테고리의 다른 글
문자열 및 변수 내용을 동일한 줄에 R로 인쇄 (0) | 2023.06.11 |
---|---|
물체를 파괴하는 방법 (0) | 2023.06.11 |
파이썬에서 "탭"을 어떻게 작성합니까? (0) | 2023.06.11 |
사용자 정의 양식에서 Django 시간/날짜 위젯 사용 (0) | 2023.06.11 |
오류 TS1243: 'async' 수정자를 'abstract' 수정자와 함께 사용할 수 없습니다. (0) | 2023.06.11 |