WP:自定义帖子类型,重写网址给404

Jas*_*zek 1 wordpress wordpress-plugin

我正在注册一个自定义帖子类型,如下所示:

register_post_type('agent_info', array(
                'labels' => array('name' => __('Agents'), 
                           'singular_name' => __('Agent'),
                           'add_new_item' => __('Add New Agent'),
                           'edit_item' => __('Edit Agent'),
                     ),
                    'public' => true,
            '_builtin' => false,
            'query_var' => true,
            'rewrite' => array('slug' => 'agents', 'with_front' => false),
                    'show_ui' => true,
                    'supports' => array('title')
            ));
Run Code Online (Sandbox Code Playgroud)

当我尝试使用'/ agents/agent-name-slug'访问代理时出现404错误,但是我将代理更改为agent_info,它运行正常.我错过了什么让重写的东西正常工作?

Joh*_*och 5

要检查两件事:你是否将帖子类型注册挂钩到init?你每次更改重写slug时都在刷新重写规则吗?

如果你没有连接到init,你应该.

要刷新重写规则,只需转到永久链接设置页面.您甚至不需要单击"保存".一旦你去那里,它就会重写规则.

此外,我不知道你是否意识到这一点,但这不会给你一个你的帖子类型的列表视图.要启用它,您还必须将它添加到init挂钩:

add_rewrite_rule( 'agents/?$', 'index.php?post_type=agent_info', 'top' );
Run Code Online (Sandbox Code Playgroud)

添加该代码后,请返回永久链接设置页面.