嗨,我是第一次使用wordpress。我正试图将walker类与我的项目不相关,该项目位于
D:\wamp\www\SgsOnline\wp-content\themes\storefront\inc\functions\walker.php我把我的课包括在我的功能中
require get_template_directory() . '/inc/functions/walker.php';
我试着在头上把它叫做:
function storefront_primary_navigation() {
?>
<nav id="site-navigation" class="main-navigation " role="navigation" aria-label="<?php esc_html_e( 'Primary Navigation', 'storefront' ); ?>">
<button class="menu-toggle" aria-controls="primary-navigation" aria-expanded="false"><?php echo esc_attr( apply_filters( 'storefront_menu_toggle_text', __( 'Navigation', 'storefront' ) ) ); ?></button>
<?php
wp_nav_menu(
array(
'theme_location' => 'primary',
'container_class' => 'primary-navigation',
'menu_class'=>'nav navbar-nav navbar-left nav-tabs',
'walker' => new Walker_Nav_Primary()
)
);
?>
</nav><!-- #site-navigation -->
<?php
}
但是我发现了一个错误:
致命错误:在第65行的D:\wamp\www\SgsOnline\wp-content\themes\storefront\inc\structure\header.php中找不到类'Walker_Nav_Primary‘
这是不经意的错误,因为它是在错误的地方为班级。如果有人有这方面的经验,那就太好了
问候
更新
这是类代码
<?php
/* Collection of walker classes*/
class Walker_Nav_Primary extends Walker_Nav_menu {
function start_lvl( &$output, $depth){ //ul
$indent = str_repeat("\t", $depth );
$submenu = ($depth > 0) 'sub-menu' : ''; //Detect if the lvls is a submenu
$output .= "\n$indent<ul class=\"dropdown-menu$submenu depth_$depth\">\n";
}
/*
function end_lvl(){ // close ul
}
Not used at the moment
function start_el(){ // li, a, span
}
function end_el(){ // closing li, a, span
}
*/
}
发布于 2015-12-17 12:55:31
乍一看,文件路径似乎不正确。/是unix目录分隔符,但您需要使用\ for Windows。
$path_elements = array(get_template_directory(), 'inc', 'functions', 'walker.php');
require join(DIRECTORY_SEPARATOR , $path_elements);Walker_Nav_Primary在速记if-else语句中有一个语法错误(逻辑表达式后面缺少问号).
$submenu = ($depth > 0) ? 'sub-menu' : '';发布于 2015-12-17 16:35:07
我相信问题是你怎么称呼你的步行者..。
'walker' => new Walker_Nav_Primary()应该只是..。
'walker' => new Walker_Nav_Primary不需要。
如果包含walker.php文件的方式有问题,那么首先会出错,因为functions.php是在header.php之前运行的。
https://stackoverflow.com/questions/34334998
复制相似问题