所以这就是问题所在:我们不喜欢WordPress不允许重复slug这一事实,即使对于子类别也意味着我们不能有这样的网址:
product-1/guides
product-1/articles
product-2/guides
product-2/articles
那太烦人了!我们正在考虑的一个解决方案就是设置这样的slu ::
product-1/product-1-guides
product-1/product-1-articles
product-2/product-2-guides
product-2/product-2-articles
但是在我们的htaccess中 - 我们可以使用它来获取这些网址并将它们重写为更漂亮的网址,这些网址从子文件夹中删除了产品名称吗?我们不介意硬编码,因为我们在网站上只有5-10个产品。
这样可以让WordPress的安装满足于独特的slu ,,但是在包含更好看的网址的框中搜索引擎优化。
我只需要一个有语法的手吗?
编辑1:
在查看WordPress Rewrite API后,我无法通过我认为非常简单的测试获得任何地方。我在我的functions.php中有以下代码,它在测试回显时运行,但没有重写?
add_action( 'init', 'productRewrites' );
function productRewrites() {
add_rewrite_rule('^wordpress/james?','index.php?author_name=jwilson','top');
}
点击时没有任何反应:
mysite.com/wordpress/james
编辑2:
酷我知道我现在每次都要点击保存。我现在遇到的问题是,当我使用$ matches [1]时,以下情况不起作用 - 只有在我对author_name值进行硬编码时才会起作用(例如对于jwilson):
function productRewrites() {
add_rewrite_rule(
"writer/([^/]+)/?",
"index.php?author_name=$matches[1]",
"top");
}
当我使用$ matches [1]时,它只返回一切!显然,在网址中没有使用([^ /] +)?!
答案 0 :(得分:0)
你必须重置永久链接结构
为了做到这一点,请转到设置 - > 固定链接并按保存更改按钮