When exploring my hobby website in Google WebMaster tools I noticed that all WordPress posts had the same ‘Missing required field “updated”‘ error. After some searching I understood that the proper solution would be to use a child theme (which I already had since I wanted to change the default font of the TwentyTen theme) and I need to change the way the posted date is shown so that it also indicates to Google that it is the update date.
Finally I have figured it out. You have to create a child theme if you don’t have one. Just a folder under /your_site/wp-content/themes/ would do. Any name would do. You need to create a style.css with necessary meta-info so that it becomes a recognized theme and perhaps a .png image if you want to have it fancy (I don’t).
Finally, for the twentyten theme you need to update the twentyten_posted_on function defined in the functions.php. So you create a new functions.php and put the following code in there:
<?php /** * TwentyTen custom functions and definitions * **/ /* Provides fix for the 'Missing required field "updated"' error */ function twentyten_posted_on() { printf( __( '<span class="%1$s">Posted on</span> %2$s <span class="meta-sep">by</span> %3$s', 'twentyten' ), 'meta-prep meta-prep-author', sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><span class="entry-date updated">%3$s</span></a>', get_permalink(), esc_attr( get_the_time() ), get_the_date() ), sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>', get_author_posts_url( get_the_author_meta( 'ID' ) ), esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ), get_the_author() ) ); }
The trick is in the line 11, which adds the “updated” class to the list, so that
<span class="entry-date">
becomes
<span class="entry-date updated">
How difficult was that?
Voila!
More information on child themes on WordPress site.