You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为WordPress文章添加设置父页面的功能?

代码问题与修正方案

原代码存在的问题

  1. 语法错误:register_post_type的第二个参数里,$args = array(...)的写法不符合PHP语法,且数组末尾多了分号,会导致代码执行报错。
  2. 需求不匹配:你的需求是给WordPress默认的「文章(post)」添加父页面设置功能,但代码是注册一个全新的自定义文章类型job-bank-posts,和默认文章类型无关。
  3. 参数缺失:即使是注册自定义文章类型,register_post_type需要public、labels等核心参数,否则自定义类型不会在后台显示,也无法正常使用。

针对默认文章(post)的正确实现

如果要给默认文章添加父页面设置,不需要注册新类型,只需修改其层级属性并添加页面属性支持:

function enable_parent_for_posts() {
    // 设置文章类型为层级结构
    global $wp_post_types;
    if (isset($wp_post_types['post'])) {
        $wp_post_types['post']->hierarchical = true;
    }
    // 添加页面属性支持
    add_post_type_support('post', 'page-attributes');
}
add_action('init', 'enable_parent_for_posts');

若需注册自定义文章类型的修正版

如果你的真实需求是创建支持父页面的自定义文章类型job-bank-posts,修正后的代码如下(补充必要参数):

function register_job_bank_posts() {
    $args = array(
        'hierarchical' => true,
        'supports' => array('title', 'editor', 'page-attributes'), // 补充常用支持项
        'public' => true, // 必须设置为true才能在后台显示
        'labels' => array(
            'name' => '职位库',
            'singular_name' => '职位',
            'add_new' => '添加新职位',
            'add_new_item' => '添加新职位',
            'edit_item' => '编辑职位',
            'view_item' => '查看职位',
            'all_items' => '所有职位'
        ),
        'menu_icon' => 'dashicons-id-alt' // 可选:设置菜单图标
    );
    register_post_type('job-bank-posts', $args);
}
add_action('init', 'register_job_bank_posts');

内容的提问来源于stack exchange,提问作者user19105941

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:24:16