自定义菜单未显示在 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 Menu
和 Social Links Menu
是 TwentySeventeen(默认)主题中的默认菜单。
来自TwentySeventeen/functions.php:
register_nav_menus( array(
'top' => __( 'Top Menu', 'twentyseventeen' ),
'social' => __( 'Social Links Menu', 'twentyseventeen' ),
) );
转到外观 > 主题并确保您的自定义主题已激活。
我是一名 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 Menu
和 Social Links Menu
是 TwentySeventeen(默认)主题中的默认菜单。
来自TwentySeventeen/functions.php:
register_nav_menus( array(
'top' => __( 'Top Menu', 'twentyseventeen' ),
'social' => __( 'Social Links Menu', 'twentyseventeen' ),
) );
转到外观 > 主题并确保您的自定义主题已激活。