Удаление ссылки на логотипе панели администратора Wordpress

Мне удалось заменить значок / логотип Wordpress на панели администратора на собственный в моем файле functions.php, а также удалить раскрывающееся меню со ссылкой на документацию Wordpress, форумы поддержки, отзывы и т. д. Что я пытаюсь сделать заключается в том, чтобы отключить ссылку на логотипе, которая приведет вас на страницу «О Wordpress» в панели администратора, где объясняются функции версии, которую вы сейчас используете.

Я хотел бы сделать это из файла functions.php. Это возможно?

Это код, который я использовал до сих пор:

    // Replace Wordpress logo with custom Logo
function my_custom_logo() {
    echo '
    <style type="text/css">
    #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
        background-position: 0 0;
        content: url(' . get_bloginfo('stylesheet_directory') . '/assets/img/my-logo.png)!important;
        top: 2px;
        display: block;
        width: 15px;
        height: 20px;
        pointer-events: none!important;
        cursor: default;
    }
    #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
        background-position: 0 0;
    }
     </style>
    ';
}
add_action('admin_head', 'my_custom_logo');
add_action('wp_head', 'my_custom_logo');

//disable a few items on the admin bar
function remove_admin_bar_links() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('new-content');      // Remove the 'add new' button
$wp_admin_bar->remove_menu('comments');         // Remove the comments bubble
$wp_admin_bar->remove_menu('about');            // Remove the about WordPress link
$wp_admin_bar->remove_menu('wporg');            // Remove the WordPress.org link
$wp_admin_bar->remove_menu('documentation');    // Remove the WordPress documentation link
$wp_admin_bar->remove_menu('support-forums');   // Remove the support forums link
$wp_admin_bar->remove_menu('feedback');         // Remove the feedback link
}
add_action( 'wp_before_admin_bar_render', 'remove_admin_bar_links' );

person AdamJB    schedule 01.05.2014    source источник


Ответы (2)


У меня была эта проблема некоторое время назад.
Самое простое решение было бы не с CSS, а с функцией, которая удаляет этот пункт меню из панели администратора.
Затем просто добавьте новый пункт меню с изображением вашего логотипа.
> Я бы сделал это вместо того, чтобы заменить иконку на свой логотип с помощью css.

/*Remove WordPress menu from admin bar*/
    add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );

    function remove_wp_logo( $wp_admin_bar ) {
        $wp_admin_bar->remove_node( 'wp-logo' );
    }

    /*Adds Custom Logo to Admin Bar*/
    add_action( 'admin_bar_menu', 'custom_admin_logo', 1 );
//priority 1 sets the location to the front/leftmost of the menu

    function custom_admin_logo( $wp_admin_bar ) {
        $custom_logo_id = get_theme_mod( 'custom_logo' ); //Uses theme logo
        $custom_logo_url = wp_get_attachment_image_url( $custom_logo_id , 'full' );
        $args = array(
            'id'    => 'custom_logo_admin',
            'title' => '&nbsp;',
            'meta'  => array( 'html' => '<li id="custom-logo-admin-bar" style="width: 230px;padding: 10px;padding-left: 0px;padding-right: 25px;"><img class="overlay" src="'.$custom_logo_url.'" style="float: left;width: 100%;height: auto;"></li>' )
        );
        $wp_admin_bar->add_node( $args );
    }

Вы можете стилизовать свое изображение с помощью CSS либо в таблице стилей, либо прямо здесь, в метамассиве.
$wp_admin_bar->add_node( $args ); это то, что на самом деле добавляет новый узел в панель администратора.
P.S. некоторые стили здесь - это то, что мне нужно для моих собственных целей, не стесняйтесь меняться.

person Shasta E.    schedule 30.01.2020

Возможно, вам следует просто перезаписать для него CSS и заменить его своим собственным изображением, чтобы функциональность осталась неизменной!

Это оригинальный CSS:

#wp-admin-bar-wp-logo > .ab-item .ab-icon {
   background-image: url("../wp-includes/images/admin-bar-sprite.png?d=20120830");
   background-position: 0 -76px;
   background-repeat: no-repeat;
   height: 20px;
   margin-top: 4px;
   width: 20px;
}

Возможно, вы захотите изменить его в:

#wp-admin-bar-wp-logo > .ab-item span.ab-icon {
   background-image: url("your-image.png");
   background-repeat: no-repeat;
   height: 20px;
   margin-top: 4px;
   width: 20px;
}

Обратите внимание на дополнительные символы от span до .ab-icon, чтобы сделать его более конкретным.

Если у вас есть какие-либо юридические вопросы, посетите страницу их лицензии: https://codex.wordpress.org/License.

И лицензия GPL: https://www.gnu.org/copyleft/gpl.html

person sidneydobber    schedule 01.05.2014
comment
Я использую собственный логотип компании и просто не хочу, чтобы он ссылался на страницу «О Wordpress» в админке — это кажется неправильным. Возможно, я слишком сильно пытаюсь изменить бэкэнд, но благодаря настройке и ребрендингу бэкэнда он выглядит менее «стандартным» для клиента. - person AdamJB; 01.05.2014
comment
Я не думаю, что это так навязчиво. Он также опубликован под лицензией GPL «GNU Public Licence», что означает, что вы можете свободно изменять и распространять исходный код при определенных условиях. - person sidneydobber; 01.05.2014
comment
Я пытаюсь удалить функции привязки и раскрывающегося списка, заменив изображение одним из своих. Я на 50% там (заменил картинку и убрал выпадающее меню) - только ссылку надо убрать. - person AdamJB; 01.05.2014
comment
Вы можете сделать ссылку display: none. Таким образом, он становится бесполезным и невидимым в пользовательском интерфейсе через CSS, не очень элегантный, но он выполняет свою работу. В противном случае вам придется копаться в ядре Wordpress или что-то делать в файле функций темы. - person sidneydobber; 01.05.2014