首页 > 解决方案 > 自定义菜单未显示在 WordPress 的菜单设置中

问题描述

我是使用 MAMP 设置的本地服务器上的 WordPress 初学者。我创建了样式、索引、页脚、页眉和函数文档,并且 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 文档直接复制和粘贴的。据我所知,我做的一切都是正确的(当然,显然不是)。

对我来说似乎很奇怪的一件事是,“外观”面板中已经有“小部件”、“菜单”和“标题”的选项卡。考虑到这是一个以空文件夹开头的自定义主题,我不确定为什么会出现这些主题。

任何帮助将不胜感激。

标签: phpwordpressmacoscustom-wordpress-pages

解决方案


通常菜单是在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' ),
) );

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


推荐阅读