Ein Datum vor 1970 ist kein Problem. Das Problem sind die Funktionen in WordPress. Mit folgender nativer Umsetzung geht es:
function mmx_fake_year_post_created() {
global $post;
$date = date_i18n( get_option( 'date_format' ), strtotime( "-65 year", strtotime( $post->post_date_gmt )));
return $date;
}
function mmx_fake_year_post_modified() {
global $post;
$date = date_i18n( get_option( 'date_format' ), strtotime( "-65 year", strtotime( $post->post_modified_gmt )));
return $date;
}
function mmx_fake_year_comment( $format, $id ) {
$comment = get_comment( $id );
$date = date_i18n( get_option( 'date_format' ), strtotime( "-65 year", strtotime( $comment->comment_date_gmt )));
return $date;
}
function mmx_filter_fake_year() {
if ( ! is_admin() ) {
add_filter( 'get_the_date', 'mmx_fake_year_post_created' );
add_filter( 'get_the_time', 'mmx_fake_year_post_created' );
add_filter( 'get_the_modified_date', 'mmx_fake_year_post_modified' );
add_filter( 'get_the_modified_time', 'mmx_fake_year_post_modified' );
add_filter( 'get_comment_date', 'mmx_fake_year_comment' );
}
}
add_action('template_redirect', 'mmx_filter_fake_year');
Alles anzeigen
Falls auch the_date() und the_time() und sonstige erfasst werden sollen, müssen die Filter entsprechend in die Funktion mmx_filter_fake_year eingehängt werden.
Anstatt den _gmt Daten kann man natürlich auch die lokalen Zeiten nehmen, also post_date, post_modified und comment_date.
Die Filter werden nur im Frontend geladen, wenn ein Seite aufgebaut wird. Im Backend bleibt alles beim alten auch die Speicherung erfolgt mit normaler Zeit.
Die Archiv Slugs bleiben wie sie sind. Das zu ändern ist bedarf einer aufwendigen Anpassung und dürfte einige Funktionen durcheinander bringen.
Modifikationen und Optimierungen sind herzlich willkommen.