我想将/{自定义帖子类型}/{帖子名称}转换为/{帖子名称},这可能吗?
如果无法做到这一点,我是否可以更改页面或帖子中的标签/术语,以便将其称为“客户”或“项目”等?
我想将/{自定义帖子类型}/{帖子名称}转换为/{帖子名称},这可能吗?
如果无法做到这一点,我是否可以更改页面或帖子中的标签/术语,以便将其称为“客户”或“项目”等?
您需要使用选项\'rewrite\'
在自定义post类型注册中。
E、 g。\'rewrite\' => array(\'slug\' => \'products\'),
当您为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记录中。
\'rewrite\' => array(\'slug\' => \'/\', \'with_front\' => false)
这将为您获得正确格式的url,但它将为404,除非您在主题中处理它。我刚刚为自定义帖子类型更改了一个slug(在本例中,我将其从"best-practices"
到"bestpractices"
). 我复制了一些带有空白段塞的代码,如下所示:
\'rewrite\' => array(\'slug\' => \'\'),
由于最初保留为空,Wordpress只使用自定义帖子类型的名称("best-practices"
) 就像鼻涕虫一样。我将代码行更改为\'rewrite\' => array(\'slug\' => \'bestpractices\'),
我只想在这里指出,如果要更改预先存在的自定义帖子类型上的slug,则需要重置永久链接才能使更改生效。是的,我们可以换鼻涕虫。请按照以下步骤操作:
步骤1:从选项“重写”更改段塞名称。(位于主题函数(Functions.php))
\'重写\'=>数组(\'slug\'=>\'产品\')
步骤2:重置永久链接。否则,将给出404错误。1> 转到wp仪表板。2> 设置-->永久链接
在“常用设置”部分下,首先将其更改为“普通”并保存。之后,再次将设置更改为首选格式。