Пользовательский пост-тип не в меню администратора

Поскольку я работаю над частной и настраиваемой темой для своего веб-сайта, я создал пользовательские пост-типы для различных видов данных, которые я хочу отобразить (и добавления дополнительных данных с настраиваемыми полями).

В любом случае, поскольку мне удалось заставить все работать в основном, некоторые элементы исчезли из меню администратора, поэтому я не могу редактировать или добавлять новый контент для своих пользовательских типов.

Вот источник на pastebin: http://pastebin.com/dmA6PQSR

 if (! function_exists ("pre_posttype")):
 функция pre_posttype () {
     $ types = array (
         "pre_selection" => массив (
             «single» => «Selection»,
             «description» => «A Выбор элементов, которые будут отображаться на первой странице»,
             "public" => false,
             "publicly_queryable" => true,
             "show_ui" => true,
             "show_in_nav_menus" => false,
             "show_in_menu" => true,
             "show_in_admin_bar" => false,
             "menu_position" => 30,
             "menu_icon" => "dashicons-visibility",
             «иерархический» => ложный,
             "поддерживает" => массив ("title", "editor")
         ),
         "pre_project" => массив (
             «single» => «Project»,
             «description» => «(Programming-) Проекты, которые этот веб-сайт показывает»,
             "public" => true,
             "show_ui" => true,
             "show_in_nav_menus" => true,
             "show_in_menu" => true,
             "show_in_admin_bar" => true,
             "menu_position" => 31,
             "menu_icon" => "dashicons-category",
             «иерархический» => ложный,
             "поддерживает" => массив ("title", "editor", "thumbnail")
         ),
         "pre_template" => массив (
             "single" => "Template",
             «description» => «Template-Project для потоковой передачи»,
             "public" => true,
             "show_ui" => true,
             "show_in_nav_menus" => true,
             "show_in_menu" => true,
             "show_in_admin_bar" => true,
             "menu_position" => 32,
             «иерархический» => ложный,
             "поддерживает" => массив ("title", "editor")
         )
     );

     foreach ($ types as $ name => $ t) {
         # Сохранение SINGLE и MULTI в переменных и их снятие, чтобы избежать проблем, так как мы сливаемся и публикуем его
         # Когда ни один из них не установлен, мы создадим их из имени
         $ s = isset ($ t ["single"])?  $ t ["single"]: (ucfirst (strtolower (strpos ($ name, "_")? substr (strpos ($ name, "_") + 1): $ name)));
         $ m = isset ($ t ["multi"])?  $ t ["multi"]: (strcasecmp ($ s {strlen ($ s) -1}, "s")? $ s: "{$ s} s");
         # Отмена установки дополнительных значений, чтобы они не отображались на wp-регистрации и не могли накрутить дерьмо.
         unset ($ t ["multi"], $ t ["single"]);

         register_post_type ($ name, PreLib :: merge_all ($ t, array (
             # По умолчанию, которые будут применяться, когда ничего не указано
             "label" => $ m,
             "labels" => array (
                 "name" => $ m,
                 "unique_name" => $ s,
                 "add_new" => "Добавить новое",
                 "add_new_item" => "Добавить новый {$ s}",
                 "edit_item" => "Изменить {$ s}",
                 "new_item" => "New {$ s}",
                 "view_item" => "Просмотреть {$ s}",
                 "search_items" => "Поиск {$ s}",
                 "not_found" => "Nothing Found",
                 "not_found_in_trash" => "Ничего не найдено в корзине",
                 "parent_item_colon" => "Parent {$ s}",
                 "all_items" => "Все {$ m}",
                 "archives" => "{$ s} Архивы",
                 "insert_into_item" => "Вставить в {$ s}",
                 "uploaded_to_this_item" => "Загружено на это {$ s}",
                 "menu_name" => $ m,
                 "update_item" => "Обновить {$ s}",
             ),
             array_type "=> array (
                 strtolower ($ s),
                 strtolower ($ м)
             ),
             "rewrite" => array (
                 "slug" => strtolower ($ s)
             ),
             "query_var" => $ s,
             "rest_base" => strtolower ($ s)
         )));
     }
 }
 ENDIF;
 add_action ("init", "pre_posttype");

 public static function merge_all () {
        # Если имеется менее 2 массивов, мы не можем объединить
        if (func_num_args () 2) {
            # Итерировать через все подсайты и вызывать этот метод один за другим
            foreach ($ sub as $ s) $ main = merge_all ($ main, $ s);
            return $ main;
        }

        foreach ($ sub as $ key => $ val) {
            # Main имеет тот же val, что и sub, next
            if ($ main [$ key] == $ val) continue;
            # Main не имеет ключа, поэтому установите его
            if (! isset ($ main [$ key])) {
                $ main [$ key] = $ sub [$ key];
                Продолжать;
            }
            # Объединить все подмассивы
            if (is_array ($ val) && is_array ($ main [$ key])) $ main [$ key] = merge_all ($ main [$ key], $ val);
        }

        return $ main;
    }

Post-type IS регистрируется и работает в этом смысле, он просто не отображается в административном меню или в панели администратора. Он появляется с помощью запроса и в меню.

Я надеюсь, что кто-то может помочь, так как я не могу найти ошибку с тех пор, как через месяц. -Спасибо заранее

Solutions Collecting From Web of "Пользовательский пост-тип не в меню администратора"

Тип вашей возможности недействителен. Если можно, я удалю код ниже. WordPress автоматически генерирует свойство_type.

  "capability_type" => array( strtolower($s), strtolower($m) ), 

Ознакомьтесь с документацией для параметра capacity_type. https://codex.wordpress.org/Function_Reference/register_post_type