web-dev-qa-db-ja.com

どのようにどの記事がWordPressデータベースの特集画像を欠いているか見つけるのですか?

どの記事に注目の画像が掲載されていないかをデータベースで検索するにはどうすればよいですか。私はwp_postsテーブルを見回し、post_typeはarticleと等しいと検索しました。それは私にすべての記事のリストを与えるが、提出されたguidは画像を持っていて、どれが空であるかを見る方法がない。誰もが私がこれを達成することができる方法を知っていますか?

1
MikeL5799

どの記事で注目の画像を編集して追加する必要があるかを知ってほしいと思います。

Worpdressルートフォルダにファイルを作成し、WP_Queryを使用してすべての投稿を取得し、has_post_thumbnail()を使用できる機能イメージがないかどうかを確認することができます。

必要に応じてpost_typeを変更してください。

<?php
require_once('./wp-load.php');
$query = new WP_Query(array('post_type'=>'post'));
if ( $query->have_posts() ) while ( $query->have_posts() ) : $query->the_post();
    if(has_post_thumbnail() === false) {
    ?>
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br>
    <?php
    }
endwhile;

それでもSQLを使いたい場合はWP_Queryを作成して生成されたSQLを使用することができます。最初のメソッドと同じようにこのWP_Queryを使用することもできます。また、has_post_thumbnail()がfalseであるかどうかを確認する必要はありません。

$query = new WP_Query(
    array(
        'post_type'=>'post',
        'meta_query' => array(
            array(
                'key' => '_thumbnail_id',
                'compare' => 'NOT EXISTS'
            )
        )
    )
);
echo ($query->request); // Print the SQL

だから私はそれを変更した後、この例のためのSQLは少しです。

SELECT * FROM wp_posts  LEFT JOIN wp_postmeta ON
(wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_thumbnail_id' )
WHERE 1=1  AND (wp_postmeta.post_id IS NULL) AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID ORDER BY wp_posts.post_date
2
Shibi