我在这里找到了一个将所有帖子的日期随机化为随机日期的代码。以下是某人发布的代码:
<?php
/**
* Plugin Name: WPSE 259750 Random Dates
* Description: On activation, change the dates of all posts to random dates
*/
//* We want to do this only once, so add hook to plugin activation
register_activation_hook( __FILE__ , \'wpse_259750_activation\' );
function wpse_259750_activation() {
//* Get all the posts
$posts = get_posts( array( \'numberposts\' => -1, \'post_status\' => \'any\' ) );
foreach( $posts as $post ) {
//* Generate a random date between January 1st, 2015 and now
$random_date = mt_rand( strtotime( \'1 January 2015\' ), time() );
$date_format = \'Y-m-d H:i:s\';
//* Format the date that WordPress likes
$post_date = date( $date_format, $random_date );
//* We only want to update the post date
$update = array(
\'ID\' => $post->ID,
\'post_date\' => $post_date,
\'post_date_gmt\' => null,
);
//* Update the post
wp_update_post( $update );
}
}
你会如何做同样的事情,但只随机化时间,而不随机化帖子的日期。因此,帖子应该保持当前的日期不变,但只随机选择发布当天的时间。
我尝试将post\\u日期更改为post\\u时间,并仅将随机的\\u日期更改为时间()。然后,当然将date\\u格式更改为“H:i:s”,但它什么也没做。
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
这是负责随机日期的部分:
//* Generate a random date between January 1st, 2015 and now
$random_date = mt_rand( strtotime( \'1 January 2015\' ), time() );
所以你需要改变它。如果只想随机化时间部分,那么这是实现这一点的一种方法:
$random_date = strtotime( date( \'Y-m-d 00:00:00\', strtotime($post->post_date) ) ) + mt_rand(0, 24*60*60);
该行将:
取发帖日期,只取其中一天的一部分,按时间调整发帖时间,给发帖时间加上随机的秒数,这样发帖时间就会随机化。