下面的代码工作正常,但我不知道它是否正确编码。有人能确认或评论代码吗?
add_action(\'init\', \'news_rewrite\');
function news_rewrite() {
global $wp_rewrite;
add_permastruct(\'news\', \'news/%year%/%postname%/\', true, 1);
add_rewrite_rule(\'news/([0-9]{4})/(.+)/?$\', \'index.php?news=$matches[2]\', \'top\');
add_rewrite_rule(\'^news/([0-9]{4})/?\',\'index.php?post_type=news&year=$matches[1]\',\'top\');
}
最合适的回答,由SO网友:Ben Miller - Remember Monica 整理而成
无需在函数中定义$wp\\U rewrite。add\\u permastruct()和add\\u rewrite\\u rule()函数将为您解决这一问题。尝试删除“global$wp\\u rewrite;”行并查看代码是否仍然有效。
add\\u permastruct()函数currently accepts three parameters. 函数中有一些向后兼容性逻辑,可以更正使用旧的四参数结构的调用,但您可能希望将该行更改为使用当前的三参数结构,如下所示:
add_permastruct( \'news\', \'news/%year%/%postname%/\', array(\'with_front\' => true, \'ep_mask\' => 1) );