我想出了一个解决办法。
首先,我为自定义帖子类型分配了一个slug:
$rewrite = array(
\'slug\' => \'something\',
\'with_front\' => false,
\'pages\' => false,
\'feeds\' => false,
);
我使用一个过滤器和一个正则表达式。
function 1234_filter_custom_post_url( $url, $post ) {
if ( \'my_custom_post_type\' == get_post_type( $post ) ) {
$url = preg_replace(\'/something\\/(.+)\\//\', \'#$1\', $url);
}
return $url;
}
add_filter( \'post_type_link\', \'1234_filter_custom_post_url\', 10, 2 );
https://codex.wordpress.org/Plugin_API/Filter_Reference/post_type_link
post\\u type\\u link是在函数get\\u post\\u permalink返回之前,应用于post或自定义post类型的permalink URL的过滤器。