Привет @ idontknowhow :
Ваша проблема, кажется, неверные предположения относительно схемы базы данных WordPress.WordPress хранит свои вложения как post_type='attachment'
.Запустите этот запрос, чтобы понять, что я имею в виду:
SELECT
wp_posts.ID,
wp_posts.post_type
FROM
wp_posts
INNER JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE 1 = 1
AND wp_postmeta.meta_key = '_wp_attached_file'
Записи в wp_posts
с post_type='attachment'
обычно имеют 'post_status='inherit'
и 'post_parent
', равные значению поля ID
вашего сообщения.
Теперь я не совсем понял, чего вы хотели достичь.Вы упомянули технические проблемы, которые у вас были, но не фактический результат, которого вы пытались достичь.Не зная последнего, мне трудно убедиться, что я понял ваш вопрос.Так что, возможно, я неправильно понял, что вы искали, но я думаю, что это то, что вы хотели:
SELECT
posts.ID,
posts.post_title AS title,
posts.post_content AS content,
files.meta_value AS filepath
FROM
wp_posts posts
INNER JOIN wp_posts attachments ON posts.ID = attachments.post_parent
INNER JOIN wp_postmeta files ON attachments.ID = files.post_id
WHERE 1 = 1
AND files.meta_key = '_wp_attached_file'
Но использование прямого SQL не одобряется в мире WordPress;Вместо этого использование WordPress API является предпочтительным выбором, если он обеспечивает то, что вам нужно.Существует много причин для этого;то есть, чтобы избежать поломок, если будущие версии WordPress изменят схему базы данных и поскольку WordPress выполняет много операций кэширования данных, поэтому в повседневном использовании может быть более производительным не использовать прямой SQL и вместо этого использовать API WordPress.
ОднакоИспользование WordPress API для решения вашего вопроса не на 100% прямолинейно, хотя это можно сделать.Если вы хотите посмотреть, как я могу предложить спросить на родственном сайте StackOverflow Ответы на WordPress , где могут помочь многие энтузиасты WordPress?
Надеюсь, это поможет.Майк
PS Я нахожу, что многие вопросы о запросах к базе данных WordPress здесь, в StackOverflow, заставляют людей пытаться ответить на них, даже если они не знают схемы базы данных WordPress и, что более важно, не знают API WordPress,Люди здесь очень хорошо знают MySQL, но часто недостаточно хорошо знают WordPress, чтобы дать правильный ответ на вопросы, связанные с WordPress. Ответы WordPress , вероятно, лучшее место, чтобы задавать вопросы о WordPress.