получение данных post из WordPress с помощью sql-запроса

#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')