找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3271|回复: 0

wordpress菜单无序列显示

[复制链接]

37

主题

0

回帖

257

积分

管理员

积分
257
发表于 2024-8-13 18:24:21 | 显示全部楼层 |阅读模式
在WordPress中,dl dt dd是用来创建定义列表(Definition List)的HTML元素。dl是定义列表(definition list)的容器,dt是定义条目(definition term),而dd是定义描述(definition description)。
以下是一些使用dl dt dd在WordPress中创建菜单的方法:
1、使用walker类来创建自定义菜单:


class Description_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
        $indent = ($depth) ? str_repeat("\t", $depth) : '';

        $class_names = $value = '';
        $classes = empty($item->classes) ? array() : (array) $item->classes;

        $output .= "\n$indent<dl>\n";
        $output .= "\t<dt><a href='{$item->url}'>";
        $output .= $args->has_children ? ' ' : $item->title;
        $output .= "</a></dt>\n";

        if($args->has_children) {
            $output .= "\t<dd class='sub-menu'>\n";
            $output .= $this->start_lvl($depth + 1, $args);
            $output .= "\t</dd>\n";
        }

        $output .= $indent . "</dl>\n";
    }
}

然后在你的主题的functions.php文件中使用这个walker类来注册你的菜单:

add_action('init', 'register_my_menu');
function register_my_menu() {
  register_nav_menu('my-menu', __('My Menu'));
}

add_filter('wp_nav_menu_args', 'my_wp_nav_menu_args');
function my_wp_nav_menu_args($args = '') {
  $args['walker'] = new Description_Walker_Nav_Menu();
  return $args;
}

2、然后在你的主题中使用wp_nav_menu()函数来调用你的菜单:


class Description_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
        $indent = ($depth) ? str_repeat("\t", $depth) : '';

        $class_names = $value = '';
        $classes = empty($item->classes) ? array() : (array) $item->classes;

        $output .= "\n$indent<dl>\n";
        $output .= "\t<dt><a href='{$item->url}'>";
        $output .= $args->has_children ? ' ' : $item->title;
        $output .= "</a></dt>\n";

        if($args->has_children) {
            $output .= "\t<dd class='sub-menu'>\n";
            $output .= $this->start_lvl($depth + 1, $args);
            $output .= "\t</dd>\n";
        }

        $output .= $indent . "</dl>\n";
    }
}
然后在你的主题的functions.php文件中使用这个walker类来注册你的菜单:


[backcolor=rgba(245, 246, 249, 0.4)]







[backcolor=rgba(245, 246, 249, 0.4)]add_action('init', 'register_my_menu');
function register_my_menu() {
  register_nav_menu('my-menu', __('My Menu'));
}

add_filter('wp_nav_menu_args', 'my_wp_nav_menu_args');
function my_wp_nav_menu_args($args = '') {
  $args['walker'] = new Description_Walker_Nav_Menu();
  return $






您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|极客云码 ( 豫ICP备14014030号-10 )

GMT+8, 2025-5-22 00:52 , Processed in 0.073287 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表