我有一个名为'Portfolio'的自定义帖子类型。当我发帖子时,它会生成url为/ portfolio / xxx。我想将其更改为“产品”。 Change custom post-type rewrite 我已经尝试过了,但它并不认为可行。
答案 0 :(得分:5)
我假设您自己添加了自定义帖子类型,在这种情况下很容易。
当您注册新的帖子类型时,您可以为该帖子类型设置任何重写规则,作为register_post_type( 'name', $args )
函数中使用的参数的一部分。
如果您的帖子类型在前端可用并且是公开的,那么默认情况下WordPress将使用自定义帖子名称作为slug。您可以按如下方式覆盖:
$args = array(
// your other arguments
'rewrite' => array(
'slug' => 'products', // use this slug instead of post type name
'with_front' => FALSE // if you have a permalink base such as /blog/ then setting this to false ensures your custom post type permalink structure will be /products/ instead of /blog/products/
),
);
register_post_type( 'portfolio', $args );
您可以使用的其他参数记录在http://codex.wordpress.org/Function_Reference/register_post_type
答案 1 :(得分:1)
请参阅URLs of Namespaced Custom Post Types Identifiers上的文档。您可以选择的一个选项是向register_post_type()添加'rewrite'
参数。来自文档:
当您命名自定义帖子类型标识符并仍想使用干净的URL结构时,您需要设置register_post_type()函数的rewrite参数。例如:
add_action( 'init', 'create_posttype' );
function create_posttype() {
register_post_type( 'acme_product',
array(
'labels' => array(
'name' => __( 'Portfolio' ),
'singular_name' => __( 'Portfolio' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'products'),
)
);
}
然后,您可能需要登录管理员并重新保存永久链接。
答案 2 :(得分:1)
使用重写属性
$args= array(
// other settings
'rewrite' => array( 'slug' => 'Products' ),
);
register_post_type( 'portfolio', $args);