如何在WordPress的现有导航菜单中添加子菜单?

时间:2017-01-28 作者:Developer

我想通过代码(而不是管理面板)将子菜单添加到wordPress中的导航菜单中,我对wordPress完全陌生。任何帮助都将不胜感激!谢谢

3 个回复
最合适的回答,由SO网友:Developer 整理而成

我得到的答案是:我想将子菜单ffrom数据库添加到名为“产品”的菜单中

创建一个自定义插件并通过管理面板进行安装。函数内部。php编写此代码。这是升级的安全方式,如果主题更新,则不会停止。

add_filter( \'wp_nav_menu_objects\', \'ravs_add_menu_parent_class\' );
 function ravs_add_menu_parent_class( $items ) {
  $results = \'SOME SQL QUERY\';
  foreach ( $items as $item ) {
    $title = $item->title;
    $ID = $item->ID;
    if($title==\'Products\')
        $parentId = $ID;
  }
  foreach ( $results as $result ) {
  $name = $result->name;
  $id = $result->id;
  $link = array (
        \'title\'            => $name,
        \'menu_item_parent\' => $parentId,
        \'ID\'               => $id,
        \'db_id\'            => $id,
        \'url\'              => \'URL\'
    );

  $items[] = (object) $link;
  }
  return $items;   
}

SO网友:Tom

你能描述一下为什么你想通过代码而不是管理面板来完成吗?

您的答案可以在中找到wp_nav_menu. 搜索如何显示子菜单…如所述here.

SO网友:Vishal Kumar Sahu

我认为您在为子菜单函数提供父slug时遇到了麻烦。下面是codex函数的示例代码和结构add_submenu_page 这可能会帮助您了解如何获得解决方案。

add_action( \'admin_menu\', \'my_custom_menu\' );

function my_custom_menu(){

    //add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = \'\', string $icon_url = \'\', int $position = null )



    //add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = \'\' );

    add_submenu_page( \'custom-options\', \'Edit Image\', \'Edit Images\', \'manage_categories\', \'edit-images\', function_to_handle_the_request );
}


function function_to_handle_the_request(){
   print \'<div class="wrap">\';

    $file = "/path-to-your-file"; //get_stylesheet_directory() may be helpful

    if ( file_exists( $file ) )
        require $file;

    print \'</div>\';
}