zoukankan      html  css  js  c++  java
  • PHP 学习笔记 (四)

    Wordpress 框架中的一些函数:

    wp_get_nav_menu($default): 根据条件$default 获取menu, 默认获取所有的menu

    其中 $default 默认如下所示:

    $default = array(
      ‘theme_location’ =>'',
      'menu' =>'',
      'container' =>'div',
      'container_class' => 'menu-{menu_slug}-container',
      'container_id' =>'',
      'menu_class'=>'menu',
      'echo' => true,
      'fallback_cb'=>'wp_page_menu',
      'before' =>'',
      'after' =>'',
      'link_before' =>'',
      'link_after' =>'',
      'items_wrap' =>'<ul id=''%1s'>%3$s</ul>,
      'depth' =>0,
      'walker' =>''
    );

    参数的说明:

    $theme_location: 默认为none, 指定注册过的某一个导航菜单,若未指定,则显示第一个。 如primary, secondary等

    $menu:默认为none, 使用导航菜单的名称调用菜单,可以使 term_id, slug, name 等属性

    $container: 默认为 div, 是ul的父节点,只支持div 和nav标签,也可用false 去掉ul 父节点的标签

    $container_class: 默认为menu-{menu_slug}-container, 是ul 父节点的class属性

    $container_id: 默认为none , ul父节点的id

    $menu_class: 默认为menu, ul节点的class属性

    $menu_id: 默认为menu slug, 自增长的ul节点的id属性值

    $echo: 默认为true 确定直接显示导航菜单韩式返回HTML片段,如果想将导航的代码作为肤质使用,可以设置为false.

    $fallback_db: 默认值为wp_page_menu, 用于没有在后台设置导航时调的回调函数

    $items_wrap: 默认为none, 使用字符串修改替换ul的class

    $depth: 默认为0, 显示菜单的层级深度, 为0时显示所有深度的菜单

    $walker: 默认使用 new Walker_Nav_Menu(), 自定义的遍历对象,调用一个Walker子类对象定义显示导航菜单。

    使用Walker 子类制作自定义菜单:

    Walker 类是一个抽象类,该类定义了如何显示导航等,这个抽象类包含4个属性和6个方法:

    属性:

    $tree_type  , $db_fields, $max_pages, $has_children

    方法:

    start_lvl: 当Walker类达到结构顶层时执行该方法,可用于输出开始元素

    end_lvl: 关闭start_lvl输出的元素标签

    start_el: 为每一个元素输出一个开始标签

    end_el: 关闭start_el 的标签

    (核心)display_element: 定义如何显示树形结构中的元素

    (核心)walk 根据$max_depth, 循环树形结构中的每一个元素

    如果需要自定义导航,可以直接写一个类类继承Walker, 但是这样要重写所有的方法。如果改动不大,可以直接继承Walker_NAV_Menu类,重写需要修改的类即可。

    在重写 display_element时, 参数$element 包含当前遍历到的元素的所有信息, 如可以用$element->object_id 来获取当前元素的term_id

    代码片段: 使用add_shorcode('name','function_name') 可在系统中产生一个代码片段 ['name'], 可以在wordpress的后台文章中直接使用,或者在代码中使用 show_shortcode['[name]']; 直接执行

  • 相关阅读:
    SpringBoot定制修改Servlet容器
    springboot配置i18n
    idea properties编码问题
    多线程分页查询
    浏览器 私有属性&内核
    css添加样式的四种方式
    html、css、js注释
    JS中的 变量提升
    ECMAScript
    NOSCRIPT标签的用处
  • 原文地址:https://www.cnblogs.com/JacobQiao/p/5208381.html
Copyright © 2011-2022 走看看