WPSEO_Admin_Bar_Menu::add_settings_submenu()protectedYoast 1.0

Adds the admin bar settings submenu.

Метод класса: WPSEO_Admin_Bar_Menu{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->add_settings_submenu( $wp_admin_bar );
$wp_admin_bar(WP_Admin_Bar) (обязательный)
Admin bar instance to add the menu to.

Код WPSEO_Admin_Bar_Menu::add_settings_submenu() Yoast 22.4

protected function add_settings_submenu( WP_Admin_Bar $wp_admin_bar ) {
	if ( ! $this->can_manage_options() ) {
		return;
	}

	$admin_menu    = new WPSEO_Admin_Menu( new WPSEO_Menu() );
	$submenu_pages = $admin_menu->get_submenu_pages();

	$menu_args = [
		'parent' => self::MENU_IDENTIFIER,
		'id'     => self::SETTINGS_SUBMENU_IDENTIFIER,
		'title'  => __( 'SEO Settings', 'wordpress-seo' ),
		'meta'   => [ 'tabindex' => '0' ],
	];
	$wp_admin_bar->add_menu( $menu_args );

	foreach ( $submenu_pages as $submenu_page ) {
		if ( ! current_user_can( $submenu_page[3] ) ) {
			continue;
		}

		// Don't add the Google Search Console menu item.
		if ( $submenu_page[4] === 'wpseo_search_console' ) {
			continue;
		}

		$id = 'wpseo-' . str_replace( '_', '-', str_replace( 'wpseo_', '', $submenu_page[4] ) );
		if ( $id === 'wpseo-dashboard' ) {
			$id = 'wpseo-general';
		}

		$menu_args = [
			'parent' => self::SETTINGS_SUBMENU_IDENTIFIER,
			'id'     => $id,
			'title'  => $submenu_page[2],
			'href'   => admin_url( 'admin.php?page=' . rawurlencode( $submenu_page[4] ) ),
		];
		$wp_admin_bar->add_menu( $menu_args );
	}
}