Удалить стандартные screen options WP

Рейтинг: 0Ответов: 1Опубликовано: 30.06.2023

мне нужно удалить стандартные (в т.ч. Elementor, YOAST и тд) screen options в вордпресс, полностью запретив их вывод. но нужно оставить кастомные. кастомные screen options должны выводиться на странице /wp-admin/index.php (сейчас это исправно работает за исключением того, что не знаю как удалить стандартные)

гуглил долго, не нашел ничего такого

заранее благодарю за помощь

вот примерный код того, что мне нужно:


function remove_specific_screen_option() {
    $option_to_remove = 'wc_admin_dashboard_setup'; 
    $screen = get_current_screen();

    if ($screen) {
        remove_screen_option($screen->id, $option_to_remove);
    }
}
add_action('admin_head', 'remove_specific_screen_option'); 

Ответы

▲ 2Принят

Начинать гуглить надо всегда с сайта wp-kama.ru. Там содержится наиболее точная и полная информацию по WordPress, да ещё и на русском языке. Идея ответа взята с этой страницы. Да, некоторые материалы присутствуют и на английском.

/**
 * Remove widgets from the WordPress Dashboard.
 *
 * @return void
 * @noinspection UnsetConstructsCanBeMergedInspection
 */
function clear_wp_dash() {

    $dash_side   = &$GLOBALS['wp_meta_boxes']['dashboard']['side']['core'];
    $dash_normal = &$GLOBALS['wp_meta_boxes']['dashboard']['normal']['core'];

    unset( $dash_side['dashboard_primary'] );                  // WordPress Blog.
    unset( $dash_side['dashboard_quick_press'] );              // Quick publication.
    unset( $dash_side['dashboard_recent_drafts'] );            // Recent Drafts.
    unset( $dash_side['dashboard_secondary'] );                // Other WordPress News.

    unset( $dash_normal['dashboard_activity'] );               // Activity.
    unset( $dash_normal['dashboard_incoming_links'] );         // Incoming Links.
    unset( $dash_normal['dashboard_plugins'] );                // Latest Plugins.
    unset( $dash_normal['dashboard_recent_comments'] );        // Recent Comments.
    unset( $dash_normal['dashboard_right_now'] );              // Right now.
    unset( $dash_normal['dashboard_site_health'] );            // Site Health.

    unset( $dash_normal['e-dashboard-overview'] );             // Elementor.
    unset( $dash_normal['wpforms_reports_widget_pro'] );       // WPForms.
    unset( $dash_normal['wpseo-dashboard-overview'] );         // Yoast.
    unset( $dash_normal['wpseo-wincher-dashboard-overview'] ); // Yoast Wincher.

    // Remove the "Welcome" widget.
    remove_action( 'welcome_panel', 'wp_welcome_panel' );
}

add_action( 'wp_dashboard_setup', 'clear_wp_dash', PHP_INT_MAX );

Вы легко можете кастомизировать этот код под ваши нужды. Чтобы найти id виждета для удаления, надо посмотреть id блока в браузере. На картинке видно, как я нашел e-dashboard-overview.

введите сюда описание изображения