#php #mysql #wordpress
#php #mysql #wordpress
Вопрос:
Я хочу получить данные post WordPress и получить wp_attached_file из таблицы wp_postmeta это мой SQL-запрос
$query= mysql_query("SELECT wp_posts.ID,wp_posts.post_title,wp_posts.post_date,wp_postmeta.meta_value
FROM wp_posts
JOIN wp_term_relationships
ON wp_term_relationships.object_id = wp_posts.ID
JOIN wp_postmeta
ON wp_postmeta.post_id = wp_posts.ID
WHERE wp_posts.post_date > '$before7'
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'post'
AND wp_term_relationships.term_taxonomy_id = '$cat'
AND wp_postmeta.meta_key = '_wp_attached_file'
ORDER BY wp_posts.post_date DESC LIMIT 10");
это ничего мне не дало, но если бы я удалил эту строку из предложения where
AND wp_postmeta.meta_key = '_wp_attached_file'
это работает, но мне нужна эта строка, чтобы получить wp_attached_file
итак, что не так с запросом mysql
Комментарии:
1. Я думаю, вы используете префикс базы данных WordPress по умолчанию, но правильный способ ссылаться на таблицу в SQL-запросе — это переменная de
$wpdb->prefix
, например :"SELECT ".$wpdb->prefix."posts.ID,".$wpdb->prefix."posts.post_title ...."
2. Вы запрашиваете
post_type = 'post'
но, если я правильно помню,_wp_attached_file
используется только сpost_type = 'attachment'
Ответ №1:
Убедитесь, что wp_postmeta.meta_key со значением _wp_attached_file действительно существует, и тогда может возникнуть какая-то проблема с совпадением, попробуйте обрезать оба, чтобы вызвать скрытый символ
AND trim(wp_postmeta.meta_key) = trim('_wp_attached_file')