Как перемещать изображения

Мне нужно переместить все изображения, прикрепленные к сообщениям определенной категории (MyCat), из его текущего стандартного местоположения (/ uploads / year / month /) в папку определенной категории (/ uploads / mycat /).

Например:

/uploads/2015/06/mycat-post1-image1.jpg /uploads/2015/06/mycat-post1-image2.jpg /uploads/2015/07/mycat-post2-image3.jpg /uploads/2015/08/mycat-post3-image4.jpg 

… и намного больше изображений mycat …

перейдите к …

 /uploads/mycat/image1.jpg /uploads/mycat/image2.jpg /uploads/mycat/image3.jpg /uploads/mycat/image4.jpg 

(необязательное переименование, просто для иллюстрации).

Мне нужно физически перемещать изображения из исходных папок на целевые, а также менять ссылки в базе данных. Но как это сделать?

Solutions Collecting From Web of "Как перемещать изображения"

Мне пришлось закодировать внешнюю программу, я не вижу другого способа. Я использовал Java JDBC в моем случае.

Запрос:

 SELECT p.post_title, m.meta_value FROM wp_term_taxonomy tt INNER JOIN wp_term_relationships tr on tt.term_taxonomy_id = tr.term_taxonomy_id inner join wp_posts p on p.ID = tr.object_id inner join wp_posts p2 on p.ID = p2.post_parent inner join wp_postmeta m on p2.ID = m.post_id where tt.term_id = 795 and p.post_status = 'publish' and p.post_type = 'post' and p2.post_type='attachment' and p2.post_status = 'inherit' and m.meta_key = '_wp_attached_file' 

Но не удалось скопировать на определенный mycat, WordPress не распознает структуру пользовательских папок для носителя.

Затем, поскольку все изображения в текущем году / месяце, я сделал:

 UPDATE wp_posts p SET p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/02/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/03/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/04/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/05/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/06/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/07/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/08/', 'http://miwp.local/wp-content/uploads/2016/04/'), p.post_content = REPLACE(p.post_content, 'http://miwp.local/wp-content/uploads/2014/09/', 'http://miwp.local/wp-content/uploads/2016/04/') WHERE p.post_name LIKE 'mycat-%'; 

при условии, что post_name имеет префикс «mycat-».