【问题标题】:how to change sidebar menu content dynamically - wordpress?如何动态更改侧边栏菜单内容 - wordpress?
【发布时间】:2016-09-23 08:49:26
【问题描述】:

我有独特的 wordpress 后端设计,需要实现它。我怎样才能在那里添加我自己的菜单项(见第一张附图)?我知道如何删除现有菜单,但除了删除我需要添加我自己的菜单。 php有动态的方法吗? (参见图片示例here

我尝试使用 jquery append() 函数添加我的自定义菜单,但这确实是一个糟糕的解决方案。请问有什么想法吗?

【问题讨论】:

    标签: php jquery wordpress customization


    【解决方案1】:

    在管理菜单中添加带有用户名的自定义徽标。

    演示链接图片:http://screencast.com/t/W8dcfhAgS

    在函数文件中添加

    add_action('admin_menu', 'codyfly_admin_menu');
    function codyfly_admin_menu() {
        global $menu;
        global $current_user;
        $url = 'http://codyfly.com';
        $url1 = 'http://codyfly.com';
        $username = '';
        if ( is_user_logged_in() ) { 
            $username = $current_user->user_login;
        }
        $menu[0] = array( __(''), 'read', $url, 'my-logo', 'my-logo');
        $menu[1] = array( __($username), 'read', $url1, 'my-logo1', 'my-logo1');
    }
    
    add_action('admin_head', 'codyfly_admin_style');
    
    function codyfly_admin_style() {
        echo '<link rel="stylesheet" href="' . get_template_directory_uri() . '/css/style-admin.css" type="text/css" media="all" />';
    }
    

    添加样式

    #adminmenu a.my-logo,
    #adminmenu a.my-logo1{
        display: block;
        background: url(https://dummyimage.com/140x40/fff/000) no-repeat center center;
        background-size: 140px 40px;
        width: 140px;
        height: 40px;
        margin: 0 auto;
        padding: 10px 5px;
    
        font-size: 14px;
        font-weight: 400;
        line-height: 18px;
    }
    #adminmenu a.my-logo1{
         background: url(https://dummyimage.com/50x40/fff/000) no-repeat;
        background-position: left center;
        background-size: 50px 40px;
    }
    #adminmenu a.my-logo1 .wp-menu-name{
        padding-left: 60px;
    }
    #adminmenu a.shomtek-logo div.wp-menu-name {
        display: none;
    }
    

    【讨论】:

    • 感谢您的努力!
    【解决方案2】:

    对于在管理员中添加新菜单: 使用add_menu_page我们可以添加菜单和add_submenu_page添加子菜单。 More detail

    在sn-p下方添加管理员新的自定义菜单

    add_action('admin_menu', 'register_event_menu');
    function register_event_menu() {
        add_menu_page('Event', 'Event', 'manage_options', 'event_details', 'event_function', 'dashicons-clipboard');
        add_submenu_page('event_details', 'Event Setting', 'Event Setting', 'manage_options', 'event_setting', 'event_settings_function');
    }
    
    function event_function() {
    
        echo "<div class='warp'>";
        echo "<h2>Admin Page DalwadiWp</h2>";
        echo "</div>";
    }
    
    function event_settings_function() {
        echo "<div class='warp'>";
        echo "<h2>Admin Page DalwadiWp</h2>";
        echo "</div>";
    
    }
    

    用于删除管理列表中的菜单。在 sn-p 下方删除管理列表中的帖子菜单。 More detail

    add_action( 'admin_menu', 'custom_menu_page_removing' );
    function custom_menu_page_removing() {
        remove_menu_page( 'edit.php' ); //Posts
    }
    

    【讨论】:

    • 好的,但是,例如,添加徽标和一些带有用户名的图像呢?如何在管理侧菜单中使用 php 添加它? @Mansukh Khandhar
    • 在 WordPress 中所有过滤器和钩子总是添加到主题的 functions.php 文件中
    • 你能告诉我一个如何在侧边栏添加例如标志的例子吗? @Mansukh Khandhar
    • 不,假设我想在“仪表板”第一个菜单的顶部添加徽标? @Mansukh Khandhar
    • 给我你需要做的图片示例。
    【解决方案3】:

    在管理菜单中添加自定义徽标。

    http://screencast.com/t/dCvqzfxdup

    add_action('admin_menu', 'codyfly_admin_menu');
    
    function codyfly_admin_menu() {
        global $menu;
        $url = 'http://codyfly.com';
        $url1 = 'http://codyfly.com';
        $menu[0] = array( __(''), 'read', $url, 'my-logo', 'my-logo');
        $menu[1] = array( __(''), 'read', $url1, 'my-logo1', 'my-logo1');
    }
    
    add_action('admin_head', 'codyfly_admin_style');
    
    function codyfly_admin_style() {
        echo '<link rel="stylesheet" href="' . get_template_directory_uri() . '/css/style-admin.css" type="text/css" media="all" />';
    }
    

    在此处添加样式

    #adminmenu a.my-logo,
    #adminmenu a.my-logo1{
        display: block;
        background: url(https://dummyimage.com/250x85/fff/000) no-repeat center center;
        background-size: 140px 40px;
        width: 140px;
        opacity: 0.6;
        height: 40px;
        margin: 0 auto;
        padding: 10px 5px;
    }
    
    #adminmenu a.shomtek-logo div.wp-menu-name {
        display: none;
    }
    

    【讨论】:

    • 不错,马上试试。添加一些带有第二个徽标的文本(例如我之前所说的“用户名”)怎么样? @Mansukh Khandhar
    • 现在我的工作很忙。你可以在 Skype 上 3 小时后上网吗?
    • 请问您现在有什么想法吗? @Mansukh Khandhar
    • 是的,我们可以添加文本 .. 使用数组传递参数到 $menu[1] = array( __('My logo 1'), 'read', $url1, 'my-logo1 ', '我的标志1');
    • 你还记得我的截图,我在那里写了一些标志+用户名。所以当然它们需要被包装在一些标签(div,span ...)中,因为它们有一些设计。并且使用您提供的代码将无法正常工作。我已经通过在 javascript 中收集所有信息来做到这一点,然后我将其插入到第一个徽标之后。任何想法将不胜感激。 @Mansukh Khandhar
    猜你喜欢
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多