首页 > 解决方案 > 添加到导航自定义类型帖子 WordPress

问题描述

我正在尝试创建一个包含帖子自定义类型的菜单,但它们不存在于选择菜单中。我可以忘记自定义类型的属性吗?

我的代码:

//Создание страницы новостроек

add_action( 'init', 'register_house_page' ); // Использовать функцию только внутри хука init

function register_house_page() {
    $labels = array(
        'name' => 'Новостройки КРЕО',
        'singular_name' => 'Новостройки', // админ панель Добавить->Функцию
        'add_new' => 'Добавить новостройку',
        'add_new_item' => 'Добавить новую новостройку', // заголовок тега <title>
        'edit_item' => 'Редактировать новостройку',
        'new_item' => 'Новая новостройка',
        'all_items' => 'Все новостройки',
        'view_item' => 'Просмотр новостройки на сайте',
        'search_items' => 'Искать новостройку',
        'not_found' =>  'Новостроек не найдено.',
        'not_found_in_trash' => 'В корзине нет новостроек.',
        'menu_name' => 'Новостройки КРЕО' // ссылка в меню в админке
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'show_ui' => true, // показывать интерфейс в админке
        'has_archive' => true, 
        'menu_icon' => 'dashicons-admin-multisite', // иконка в меню
        'menu_position' => 21, // порядок в меню
        'supports' => array( 'title', 'editor'),
        'taxonomies'          => array(),
        'has_archive'         => false,
        'rewrite'             => true,
        'query_var'           => true,
        'show_in_nav_menus'   => true, // зависит от public
    );
    register_post_type('kreo_house', $args);
}

我有 4 个帖子 image1

但在菜单中看不到

图2

标签: phpwordpress

解决方案


我不确定当您说要创建与自定义帖子类型相关的菜单时,您是在仪表板中还是直接在您的页面中交谈,但基于您的代码,我假设您正在尝试展示您的仪表板中的自定义帖子类型,您可以使用类似于此的内容

add_action( 'init', 'create_post_type_new_post' );
function create_post_type_new_post() {
    register_post_type( 'new-post',
        array(
            'labels' => array(
                'name' => __( 'Новостройки КРЕО' ),
                'singular_name' => __( 'Новостройки КРЕО' )
                //more options here
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'new-post'),
            'supports' => array('title', 'editor'),
            'menu_icon'   => 'dashicons-admin-multisite',
            //more options here
        )
    );
}

我通常将上面提到的代码添加到一个单独的文件中,并将其导入到 functions.php 文件中

   $file = TEMPLATEPATH."/inc/your-name-file.php";
   if(file_exists($file)){
     require_once($file);
   }

我希望这可以帮助你!

更新: 如果您想在菜单或您的网站中显示您的自定义帖子类型,您需要在菜单部分创建一个自定义链接,链接到存档

如果为自定义帖子类型启用存档,那么您可以在您的网站上显示它们。自定义帖子类型存档页面的 URL 应如下所示:

http://yoursite.com/post-type-slug/

您可以将每个自定义帖子类型的档案链接放置到导航菜单中。

您需要访问外观 > 菜单页面。您需要单击自定义帖子的名称您将看到帖子类型档案的选项。

如果在此之后您继续看不到菜单选项,请尝试以下操作:

启用调试选项添加到您的 wp-config.php 并验证是否出现某些错误

define('WP_DEBUG', true);

有时自定义帖子类型名称的长度会导致错误


推荐阅读