如何在WordPress数据库中找到缺少特色图片的文章?

时间:2017-12-20 作者:MikeL5799

如何搜索数据库以找出哪些文章缺少特色图片?我在wp_posts 表并搜索post_type 等于第条。它给了我一个所有文章的列表,但guid字段有图像,无法看到哪些是空的。有人知道我怎样才能做到这一点吗?

1 个回复
最合适的回答,由SO网友:Shibi 整理而成

我想你想让它知道你需要在哪篇文章中编辑和添加特色图片。

您可以在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

结束