我有一个名为“Collections”的自定义帖子类型,其结构如下:
http://example.com/collections/artwork-name/
现在,这个集合CPT有4个类别,我已经添加到permalink中,如下所示
http://example.com/collection/paintings/artwork-name/
http://example.com/collection/sculptures/artwork-name/
http://example.com/collection/drawings-watercolours/artwork-name/
http://example.com/collection/past-sales/artwork-name/
出于SEO原因,我需要将旧URL重定向到新URL。我面临的问题是,由于URL现在有4种不同的组合,我需要找到一种方法,通过识别其基本类别(每个URL只有一个类别)来匹配旧URL和新URL。
我尝试获取当前URL,查看是否包含字符串部分/集合/以及它是哪个类别的一部分,但没有成功。
我认为另一种可行的方法是匹配/collections/(old)和/collections/(new)之后的URL的最新部分,然后检查它的类别。
我会用htaccess手工完成,但我有500多个URL。
你将如何解决这个问题?
SO网友:Dan.
在一天结束时,你将把东西放进你的.htaccess
文件但是,可以通过以下方法加快速度。。。
您希望最终得到两个列表,从wp_posts
桌子两个列表具有相同的字段/列:Post ID;并发布URL。
列表1-创建时未将帖子分类
列表2-在您将它们全部分类后创建。
然后,由于两个列表将具有相同的Post ID列,您可以将它们合并在一起:
`Old URL | New URL`
-------------|--------------
post1 old url| post 1 new url
然后,您可以生成一个要粘贴到
.htaccess file
. 您可以编写一个简单的脚本,将上面列表中的每一行转换为:
Redirect 301 post1/old/url post1/new/url
以上每一步都有很多方法,但我相信你一定能想出一个办法。将是基本的PHP和MySQL查询。也许可以直接从
phpmyadmin
并导出为CSV。