我想出了一个解决方案,决定与大家分享,因为和蔼可亲是件好事。这对我很有用,并且基于Jonathan Brinley. 如果有人有任何建议或更正,请随时告诉我。
首先,创建您的自定义帖子类型并按如下方式进行设置(这只是一个示例,请记住使其适合您自己的需要。slug设置很重要!)
register_post_type(\'charts\', array(
\'label\' => \'Whatever\',
\'description\' => \'\',
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'capability_type\' => \'post\',
\'hierarchical\' => true,
\'rewrite\' => array(\'slug\' => \'/whatever/%author%\'),
\'query_var\' => true,
\'supports\' => array(
\'title\',
\'editor\',
\'trackbacks\',
\'custom-fields\',
\'comments\',
\'author\'
)
));
接下来,为过滤器设置一个函数(在
functions.php
):
function my_post_type_link_filter_function($post_link, $id = 0, $leavename = FALSE) {
if (strpos(\'%author%\', $post_link) === FALSE) {
$post = &get_post($id);
$author = get_userdata($post->post_author);
return str_replace(\'%author%\', $author->user_nicename, $post_link);
}
}
然后激活过滤器(也在
functions.php
):
add_filter(\'post_type_link\', \'my_post_type_link_filter_function\', 1, 3);
正如我所说,我不确定这是最好的方法,但它对我来说很有效:)