0

タイトルと最後の 6 件の投稿の最初の画像リンクを回復するワードプレス データベースに mysql クエリを実行したいと考えています。

Wordpress のコア機能は、外部サイトで公開したいので許可されていません。つまり、純粋な mysql クエリが必要です。

この方法でタイトルを表示できます。

$result = mysql_query("select * FROM wp_posts WHERE post_status='publish' AND post_type='ad_listing' ORDER BY id desc limit 6" ,$db);
while ($records = mysql_fetch_assoc($result)) {
  echo '<li>'.$records['post_title'] ."</li>";
}

しかし、これらの投稿に添付された最初の画像 (存在する場合) を復元するにはどうすればよいでしょうか?

4

1 に答える 1

1

wp_posts テーブルの画像レコードについて、post_parent は公開されたページを指していますか? 私の場合はそうではなく、あなたのページもそうでない場合は、公開された各ページの post_content フィールドを検索して、img タグ (または画像に使用するタグ) を探す必要があります。

私が読んだ他の記事から、画像の post_parent が親ページを指すことがあるようです。これがデータベースに当てはまる場合、次のようなことができるはずです。

SELECT 
    post.id AS post_id, 
    post.post_title, 
    post.guid AS post_url, 
    image_detail.id AS image_id, 
    image_detail.post_title AS image_title, 
    image_detail.guid AS image_url
FROM wp_posts AS post
LEFT JOIN (
    SELECT post_parent, MIN( id ) AS first_image_id
    FROM wp_posts
    WHERE post_type = 'attachment'
        AND post_mime_type LIKE 'image/%'
    GROUP BY post_parent
    ) AS image_latest 
    ON post.id = image_latest.post_parent
LEFT JOIN wp_posts AS image_detail 
    ON image_detail.id = image_latest.first_image_id
WHERE post.post_status = 'publish';
于 2013-03-20T22:06:57.887 に答える