我有一个自定义的帖子类型items 设置我还建立了一个分类法items 称为类别。
功能。php代码:
regsiter_post_type(\'items\',
array(\'labels\' => array
(
\'name\' => \'Items\',
\'singular_name\' => \'Item\'
),
\'public\' => true,
\'rewrite\' => array
(
\'slug\' => \'items\'
),
\'supports\' => array
(
\'title\',
\'excerpt\',
\'editor\',
\'comments\',
\'revisions\',
\'thumbnail\'
),
\'taxonomies\' => array
(
\'categories\',
\'tags\'
)
));
register_taxonomy ( \'categories\', \'items\', array(\'hierarchical\' => true,
\'label\' => \'Item Categories\',
\'rewrite\' => array
(
\'slug\' => \'categories\',
\'hierarchical\' => ture
)));
require \'rewrites.php\'; // load rewrite class
Rewrites::init(); // call init function in rewrite class
重写。php代码:
class Rewrites
{
// Start class methods
public static function init()
{
// Rewrite urls
add_action ( \'generate_rewrite_rules\', array( __CLASS__, \'rules\' ) );
add_filter ( \'query_vars\', array( __CLASS__, \'vars\' ) );
}
public static function rules ( $wp_rewrite )
{
$new_rules = array();
$new_rules[\'categories/(.+?)/view/(.+)/?\'] = \'index.php?categories=$matches[1]&view=$matches[2]\';
return $new_rules + $wp_rewrite->rules;
}
// End class methods
}
因此,在分类法中查看帖子时,url应该是:
/类别/%name\\u of\\u分类%/
我还需要附加到url以添加query\\u vars
/类别/%name\\u of\\u taxonomy%/视图/%type\\u of\\u视图%/
%type\\u of\\u view%将是两个不同的选项。列表、网格等。
以下是我的重写规则:
[categories/(.+?)/view/(.+)/?] => index.php?categories=$matches[1]&view=$matches[2]
但当我转到url/categories/%name\\u of\\u taxonomy%/视图/网格/时,它会重定向回/categories/%name\\u of\\u taxonomy%/