如何用register_post_type_args重定义WordPress默认POST类型的标签与Slug
修改WordPress默认文章类型(Post)为Blog的完整方案
嘿,我看你已经找对方向用register_post_type_args钩子来修改默认文章类型属性了!咱们把代码补全优化下,确保后台显示和URL结构都完美贴合你的需求:
完整的functions.php代码
function post_to_blog($args, $post_type) { // 只对默认的post类型做修改,其他类型保持原样 if ('post' !== $post_type) { return $args; } // 修改主标签为Blog $args['label'] = 'Blog'; // 精细化修改后台所有相关文本(避免只改主标签,其他地方还是显示Article) $args['labels'] = array( 'name' => 'Blog', 'singular_name' => 'Blog Post', 'add_new' => 'Add New Blog Post', 'add_new_item' => 'Add New Blog Post', 'edit_item' => 'Edit Blog Post', 'new_item' => 'New Blog Post', 'view_item' => 'View Blog Post', 'view_items' => 'View Blog Posts', 'search_items' => 'Search Blog Posts', 'not_found' => 'No blog posts found', 'not_found_in_trash' => 'No blog posts found in Trash', 'all_items' => 'All Blog Posts', 'archives' => 'Blog Archives', 'item_updated' => 'Blog post updated.' ); // 设置URL的slug为blog,with_front设为false避免继承主题的前置slug $args['rewrite'] = array( 'slug' => 'blog', 'with_front' => false ); return $args; } add_filter('register_post_type_args', 'post_to_blog', 10, 2);
必做的收尾操作
代码添加后,一定要登录WordPress后台,进入「设置」→「固定链接」,直接点击「保存更改」(不用修改任何设置)。这一步会让WordPress更新重写规则,确保新的mysite/blog/my-post URL结构生效。
额外小贴士
- 如果你的主题本身已经有前置slug(比如默认就带
/blog/),可以把with_front改成true,避免出现重复的slug。 - 要是网站之前已经发布过文章,旧的
/my-post/链接会失效,你可以加一段重定向代码,或者用Redirection插件把旧链接导向新地址,保证SEO不受影响。
内容的提问来源于stack exchange,提问作者Antoine Richard
相关产品推荐
相关产品推荐

