您需要使用选项\'rewrite\'
在自定义post类型注册中。
E、 g。\'rewrite\' => array(\'slug\' => \'products\'),
从codex
当您为URL命名名称空间,但仍要使用“干净”的URL结构时,需要添加“rewrite元素。例如,假设上面的“ACME Widgets”示例:
add_action( \'init\', \'create_post_type\' );
function create_post_type() {
register_post_type( \'acme_product\',
array(
\'labels\' => array(
\'name\' => __( \'Products\' ),
\'singular_name\' => __( \'Product\' )
),
\'public\' => true,
\'has_archive\' => true,
\'rewrite\' => array(\'slug\' => \'products\')
)
);
}
上述操作将生成一个类似http:/示例的URL。com/products/%product\\U name%(请参见上文对%product\\U name%的描述。)请注意,我们在这里使用了复数形式,这是一些人喜欢的格式,因为它意味着嵌入产品列表的页面有一个更符合逻辑的URL,即http:/示例。com/产品/。
另请注意,在此处使用“products”这样的通用名称可能会与使用相同名称的其他插件或主题发生冲突,但大多数人不喜欢使用更长、更模糊的URL,如http:/示例。com/acme\\u products/foobrozinator和解决两个插件之间的URL冲突更容易,因为URL结构不会以存储自定义post类型名称的方式持久存储在数据库中的每个post记录中。