自定义菜单未显示在 WordPress 的菜单设置中

Custom menus not showing in Menu Settings in WordPress

我是一名 WordPress 初学者,在使用 MAMP 设置的本地服务器上工作。我创建了样式、索引、页脚、页眉和函数文档,PHP 毫无问题地组装了所有内容。该网站按预期发布了我的所有文件。然后我尝试将自定义菜单添加到管理仪表板中的外观面板/菜单,但它们不会显示。

这是我的文件夹层次结构的快照:

这是管理页面的屏幕截图:

这是目前我的 functions.php 文件中的所有代码:

<?php

function macsc_script_enqueue() {
    wp_enqueue_style('customstyle', get_template_directory_uri() . '/css/macsc.css', array(), '1.0.0', 'all');
    wp_enqueue_script('customjs', get_template_directory_uri() . '/js/macsc.js', array(), '1.0.0', true);
}

add_action('wp_enqueue_scripts', 'macsc_script_enqueue');

function register_my_menus() {
  register_nav_menus(
    array(
      'header-menu' => __( 'Header Menu' ),
      'extra-menu' => __( 'Extra Menu' )
    )
  );
}
add_action( 'init', 'register_my_menus' );

我已经阅读了几个堆栈溢出线程并查阅了 WordPress Codex 支持文档。 register_my_menus 函数是从 WordPress 文档直接复制和粘贴的。据我所知,我做的一切都是正确的(当然显然不是)。

对我来说奇怪的一件事是外观面板中已经有 "widgets," "menus" 和 "header" 的选项卡。考虑到这是一个以空文件夹开头的自定义主题,我不确定为什么会有这些。

如有任何帮助,我们将不胜感激。

我总是这样注册菜单:

if ( !function_exists( 'theme_setup' ) ) {
    function theme_setup() {
        /*
         * Some settings functions
         */
        register_nav_menus(
            array(
                'header-menu' => __( 'Header Menu', 'domain' ),
                'extra-menu'  => __( 'Extra Menu', 'domain' )
            )
        );
    }
}
add_action( 'after_setup_theme', 'theme_setup' );

通常在 after_setup_theme 挂钩上注册菜单。我会尝试使用它而不是 init.

此外,您无需注册自定义小部件或小部件区域支持即可显示小部件菜单,WordPress 在核心中引入了很多功能,无论您的主题或活动插件如何。

第二眼看来,TwentySeventeen 主题似乎处于活动状态,考虑到 Top MenuSocial Links Menu 是 TwentySeventeen(默认)主题中的默认菜单。

来自TwentySeventeen/functions.php:

register_nav_menus( array(
    'top'    => __( 'Top Menu', 'twentyseventeen' ),
    'social' => __( 'Social Links Menu', 'twentyseventeen' ),
) );

转到外观 > 主题并确保您的自定义主题已激活。