WordPress users can efficiently identify posts without featured images or alt text using WP CLI commands.
Claims
WordPress users can efficiently identify posts without featured images or alt text using WP CLI commands.
Parent: WordPressEntity: Content ManagementImpact: positiveDate: May 11, 2026Target: Efficient identification of missing media elements in WordPress
Missing alt text in blog posts negatively impacts accessibility for visually impaired users.
Parent: AccessibilityEntity: Web ContentImpact: negativeDate: May 11, 2026Target: Impact of missing alt text on accessibility
Source posts
🆕 blog! “Find blog posts with missing featured images - and missing alt text - without a plugin”
WordPress has the concept of "Featured Images". They are the images which show up when you share a blog post on social media or, on some themes, as the "hero" image.
How can you quickly and easily find any posts which…
👀 Read more: https://shkspr.mobi/blog/2026/05/find-blog-posts-with-missing-featured-images-and-missing-alt-text-without-a-plugin/
⸻
#accessibility #TILvember #WordPress
0 boosts · 0 favs · 1 replies · May 11, 2026
#accessibility#tilvember#wordpress
Find blog posts with missing featured images - and missing alt text - without a plugin
https://shkspr.mobi/blog/2026/05/find-blog-posts-with-missing-featured-images-and-missing-alt-text-without-a-plugin/
WordPress has the concept of "Featured Images". They are the images which show up when you share a blog post on social media or, on some themes, as the "hero" image.
How can you quickly and easily find any posts which don't have a featured image?
For this, I use WP CLI - it allows you to run complex WordPress actions and queries using the command line. After you have installed WP CLI you can get started.
Missing Images
On the command line, run:
wp eval 'foreach(get_posts(array("post_type"=>"post","post_status"=>array("publish"),"posts_per_page"=>-1,)) as $post){if(get_the_post_thumbnail($post)==""){$post_type_object=get_post_type_object($post->post_type);$link=admin_url(sprintf($post_type_object->_edit_link . "&action=edit", $post->ID));echo $post->post_date . " " . $link . " " . $post->post_title . "\n";}}'
Here's the code in a slightly more readable format:
foreach (
get_posts(
array( "post_type" => "post",
"post_status" => array("publish"),
"posts_per_page" => -1,
)
) as $post) {
if( get_the_post_thumbnail( $post)== "" ) {
$post_type_object = get_post_type_object( $post->post_type );
$link = admin_url( sprintf( $post_type_object->_edit_link . "&action=edit", $post->ID ) ) ;
echo $post->post_date . " " . $link . " " . $post->post_title . "\n";
}
}
That will print out:
2024-05-02 12:34:11 https://example.com/wp-admin/post.php?post=123&action=edit "A post about sausages"
2023-09-13 20:55:52 https://example.com/wp-admin/post.php?post=456&action=edit "I like cheese"
2021-12-31 15:43:33 https://example.com/wp-admin/post.php?post=789&action=edit "Touching computers"
You can then go and edit each of those posts to add a featured image.
Missing Alt Text
Adding alt text means that people who can't see images will still be able to understand what the picture represents. Here's another one-lines to find all featured images with missing alt text:
wp eval 'foreach (get_posts(array("post_type"=>"post","post_status"=>array("publish"),"posts_per_page" => -1,)) as $post){if(simplexml_load_string(get_the_post_thumbnail($post))["alt"]==""){$post_type_object=get_post_type_object($post->post_type);$link=admin_url(sprintf($post_type_object->_edit_link . "&action=edit",$post->ID));echo $post->post_date . " " . $link . " " . $post->post_title . "\n";}}'
And, in slightly more readable form:
foreach (
get_posts(
array( "post_type" => "post",
"post_status" => array("publish"),
"posts_per_page" => -1,
)
) as $post) {
if( simplexml_load_string( get_the_post_thumbnail( $post ) )["alt"] == "") {
$post_type_object = get_post_type_object( $post->post_type );
$link = admin_url( sprintf( $post_type_object->_edit_link . "&action=edit", $post->ID ) ) ;
echo $post->post_date . " " . $link . " " . $post->post_title . "\n";
}
}
Again, that lists the datetime of the post, its edit link, and its title.
Now, if you'll excuse me, I have about 873 posts which need updating 🤯
#accessibility #TILvember #WordPress
0 boosts · 0 favs · 0 replies · May 11, 2026
#accessibility#tilvember#wordpress