将网页设置为自定义帖子的父级时重写/永久链接错误

时间:2018-03-12 14:21:40

标签: php wordpress

我正在努力实现的目标

我一直在尝试完成以下任务:

  1. 为它创建一个自定义帖子类型“vehicles”和一个单一的vehicles.php(完成,没问题)
  2. 创建“车队”和页面“舰队欧洲”(已完成,没问题)
  3. 将“舰队”设为“舰队欧洲”的母页(已完成,没有问题)
  4. 创建一个名为“红色家庭面包车”的车辆自定义帖子(已完成,没问题)
  5. 使车辆自定义帖子类型分层,并允许它将页面作为父级(完成,没问题)
  6. 将“fleet europe” page 设置为“red family van” vehicle 的父级,然后转到settings-permalinks页面并更新永久链接(已完成,但是永久链接结构破裂)
  7. 症状

    结果永久链接结构看起来没问题(mypage.com/fleets/fleets/fleet-europe/red-family-van),但访问任何车辆帖子时,wordpress无法正常重写,网络选项卡显示404和wordpress默认返回到只有页眉和页脚而没有内容的空白页面(因为没有指定404页面)。

    我尝试了什么

    首先,我试图从“欧洲舰队”页面中取消“红色家庭面包车”车辆。然后一切都恢复正常。使用任何车辆提供帮助会再次破坏永久链接。

    其次,我试图尝试

    'hierarchical' => true,
    'rewrite' => array('slug' => 'fleets', 'with_front' => true, 'pages' => true),
    
    我的post-vehicles.php中的

    参数(粘贴在下面)。无论'pages'是真还是假,无论是slug,无论是'with_front,将页面育成车辆总是会破坏。

    然后我尝试用各种各样的插件来分析和修改固定链接结构,这些插件都没有帮助我找出问题 - 根据它们“一切都应该正常工作:)”

    最后,我已经阅读了似乎处理类似问题的任何stackoverflow帖子,但人们似乎只是指向设置我已经建立的post-type重写参数。

    我的代码是什么样的

    Functions.php - 通过元数据块允许后端的车辆的父级页面:

    //removing the standard hierarchy parenting metabox, because that only allows parenting vehicles with vehicles
    add_action('admin_menu', function() { 
       remove_meta_box('pageparentdiv', 'vehicles', 'normal');
    });
    
    //adding a custom metabox that allows the parenting of pages to vehicles
    add_action('add_meta_boxes', function() { 
       add_meta_box('vehicle-parent', 'Parent Page', 'vehicle_attributes_meta_box', 'vehicles', 'side', 'high');
    });
    
    // building the dropdown for the pages to be selectable in the metabox
    function vehicle_attributes_meta_box($post) { 
        $post_type_object = get_post_type_object($post->post_type);
    
    
        if ( $post_type_object->hierarchical ) {
                $pages = wp_dropdown_pages(array(
                        'post_type'         => 'page', 
                        'selected'      => $post->post_parent, 
                        'name'          => 'parent_id', 
                        'show_option_none'  => __('(no parent)'), 
                        'sort_column'       => 'menu_order, post_title', 
                        'echo'          => 0
            ));
    
    
                if ( ! empty($pages) ) {
                    echo $pages;
                } 
            }
    }
    

    post-vehicles.php - 设置自定义帖子类型车辆

    function fleet_management_post_type_vehicles() {
    
    
        $args = array(
            'labels' => $labels,
            'public' => true,
            'show_ui' => true,
            'capability_type' => 'post',
            'taxonomies' => array('vehicles_category'),
            'hierarchical' => true,
            'rewrite' => array('slug' => 'fleets', 'with_front' => true, 'pages' => true),
            'query_var' => true,
            'show_in_nav_menus' => true,
            'menu_icon' => 'dashicons-admin-post',
            'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'page-attributes'),
        );
    
        register_post_type('vehicles', $args);
    }
    
    add_action('init', 'fleet_management_post_type_vehicles');
    

    赞赏所有指针!

0 个答案:

没有答案