Помог мне тут один товарищ и спасибо ему еще раз.
мне нужно было обойти сотни тысяч записей в wordpress и изменить дублирующиеся url. Вот такой код он мне дал:
<?php
if (empty($wp)) {
require_once('wp-config.php');
}
global $wpdb;
$posts = $wpdb->get_results(
"SELECT
p.ID, p.post_name
FROM
wp_posts p
WHERE
p.post_type = 'post' AND p.post_status = 'publish'");
$double = array();
$rewrite = array();
foreach($posts as $post){
if (!array_key_exists($post->post_name,$double)){
$double[$post->post_name] = 0;
}else{
$double[$post->post_name] += 1;
$rewrite[$post->ID] = $post->post_name . "-" . $double[$post->post_name];
}
}
foreach($rewrite as $key => $value){
$wpdb->update( 'wp_posts',
array( 'post_name' => $value ),
array( 'ID' => $key )
);
}
код отлично работает, но теперь у меня скопилось большое количество постов, которые не позволяет обойти ОЗУ хостинга. Можно ли его упростить или какие-нибудь еще варианты.
Ошибка такого рода Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /home/.../wp-db.php on line 1841
php_value memory_limit 5096M не дает результата