这似乎有效:
创建重写规则,如post-type/post-name.html
. 您可以使用数组仅为某些帖子类型集创建规则,而不是为所有帖子类型创建规则。
add_action( \'rewrite_rules_array\', \'rewrite_rules\' );
function rewrite_rules( $rules ) {
$new_rules = array();
foreach ( get_post_types() as $t )
$new_rules[ $t . \'/([^/]+)\\.html$\' ] = \'index.php?post_type=\' . $t . \'&name=$matches[1]\';
return $new_rules + $rules;
}
设置这些帖子类型的新permalink结构的格式。
add_filter( \'post_type_link\', \'custom_post_permalink\' ); // for cpt post_type_link (rather than post_link)
function custom_post_permalink ( $post_link ) {
global $post;
$type = get_post_type( $post->ID );
return home_url( $type . \'/\' . $post->post_name . \'.html\' );
}
然后停止重定向规范URL以删除尾部斜杠。这可能需要更多的工作,因为您可能希望在大多数情况下保持重定向。
add_filter( \'redirect_canonical\', \'__return_false\' );
正如这里的其他人所说,完成上述操作后,您需要刷新规则,这可以通过访问
options-permalink.php
中的管理页
Dashboard -> Settings -> Permalinks
.