我正在为permalink使用自定义结构:/%postname%/%page%/%year%/
.
当我导航到http://wordpress-serv/projects-teams/designers/19/2013
, 它给我404“找不到页面”。
尽管如此,它与http://wordpress-serv/projects-teams/designers/19
(无年份)和get_query_var(\'page\');
正在返回19
. 现在,我只需要get_query_var(\'year\')
而不是变得怪异404。。
这里是什么。htaccess文件如下所示:
AddHandler php-stable .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
自定义永久链接中可以设置的参数数量是否有限制?有什么建议吗,可能出了什么问题?
最合适的回答,由SO网友:vulcan raven 整理而成
正如我所怀疑的那样,我最终不得不放弃pretty link,将永久链接改回:
/%postname%/%页%
然后我将URL更改为http://wordpress-serv/projects-teams/designers/19?fyear=2013
在shortcode中,我传递了$\\u GET[\'fyear],使用丑陋的查询字符串,它就可以正常工作。
SO网友:Milo
使用permalink结构字段无法完成此操作。正如Jerry指出的,你不能使用%page%
重写结构中的标记。WordPress在生成重写规则以自动处理分页时使用此标记。这就是如何设置正常的永久链接结构和分页的方法——它是在内部为您处理的。
您必须添加自己的重写规则才能正常工作,例如:
function wpa_rewrite_rule(){
add_rewrite_rule(
\'([^/]+)(/[0-9]+)(/[0-9]+)?/?$\',
\'index.php?name=$matches[1]&paged=$matches[2]&year=$matches[3]\',
\'top\'
);
}
add_action( \'init\', \'wpa_rewrite_rule\' );
您可能还需要过滤
post_link
为任何API调用生成此格式的正确URL以输出单个post URL。