How to relocate images

时间:2016-04-15 作者:Antonio Sánchez

我需要将附加到特定类别(MyCat)帖子的所有图像从其当前标准位置(/上传/年/月/)移动到特定类别文件夹(/上传/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
(无需重命名,仅用于演示)。

我需要将图像从源文件夹物理移动到目标文件夹,还需要更改数据库中的链接。但是,怎么做呢?

1 个回复
最合适的回答,由SO网友:Antonio Sánchez 整理而成

我必须编写一个外部程序,我看不到任何其他方式。在我的案例中,我使用了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\\u名称前缀为“mycat-”。

相关推荐

在WP搜索表单中是否有类似`wp_Dropdown_Categories()`的输入复选框选项?

我有自定义的帖子类型,当前正在使用wp_dropdown_categories() 在WP搜索表单中的功能,以便人们能够按薪资级别和工作类型进行筛选。是否有一个等效函数,以便用户可以使用输入复选框元素而不是<select> 元素,以便他们在进行搜索时可以选择多个工作类型或薪资水平?我似乎在开发者文档中找不到任何东西。我正在寻找的是允许复选框替换使用下面代码中的select选项的下拉元素的东西。<form method="get" action="<?p