Доброго времени суток уважаемые форумчане! Имеется около 2000 статей на сайте, которым нужно изменить дату публикации. По одной статье изменять - это очень долго.Если какой-нибудь автоматический способ.Заранее благодарен
Пользуюсь таким способом. создаём файл php, перед этим правим всего два числа, закидываем в корень сайта и обращаемся к нему через браузер. Даты постов изменены. Ни разу не запорол этим способом БД, единственное что посты раскидает в том же порядке что и идут и изменять по количеству/дням нельзя.
// диапазон раскидывания постов:
// от (текущая_дата - $days_minus дней)
// до (текущая дата + $days_plus дней)
$days_minus = 30;
$days_plus = 90;
// дальше магия
$sql = 'SELECT `ID` FROM `'.$wpdb->prefix.'posts`
WHERE
`post_type`="post"
AND
(`post_status`="future" OR `post_status`="publish")
';
if ( $posts = $wpdb->get_results($sql) )
{
// Меняем дату у постов
foreach ($posts as $post)
{
$sql = 'UPDATE `'.$wpdb->prefix.'posts` SET
`post_date`= DATE_ADD(
FROM_DAYS( FLOOR( TO_DAYS(NOW())
+ (RAND()*'.$days_plus.')
- (RAND()*'.$days_minus.')
)
),
INTERVAL (FLOOR(RAND()*86400)) SECOND
),
`post_date_gmt`=`post_date`,
`post_modified`=`post_date`,
`post_modified_gmt`=`post_date`
WHERE
`id`=%d
LIMIT 1
';
$psql = $wpdb->prepare($sql, $post->ID);
$wpdb->query($psql);
}
// Обновляем статусы постов
$sql = 'UPDATE `'.$wpdb->prefix.'posts` SET
`post_status`="future"
WHERE
`post_date`>NOW()
AND
`post_type`="post"
AND
(`post_status`="future" OR `post_status`="publish")
';
$wpdb->query($sql);
$sql = 'UPDATE `'.$wpdb->prefix.'posts` SET
`post_status`="publish"
WHERE
`post_date`<=NOW()
AND
`post_type`="post"
AND
(`post_status`="future" OR `post_status`="publish")
';
$wpdb->query($sql);
}
die('Complete');
Второй способ который юзаю - софтина TextKit, там всё проще, можно менять всё как душе угодно и есть бесплатная версия, которой в вашем случае более чем хватит.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 1 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.