更改自定义帖子类型网址

时间:2015-02-03 11:07:40

标签: wordpress custom-post-type permalinks

我有一个名为'Portfolio'的自定义帖子类型。当我发帖子时,它会生成url为/ portfolio / xxx。我想将其更改为“产品”。 Change custom post-type rewrite 我已经尝试过了,但它并不认为可行。

3 个答案:

答案 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);