admin-filters.php (6740B)
1 <?php 2 /** 3 * Administration API: Default admin hooks 4 * 5 * @package WordPress 6 * @subpackage Administration 7 * @since 4.3.0 8 */ 9 10 // Bookmark hooks. 11 add_action( 'admin_page_access_denied', 'wp_link_manager_disabled_message' ); 12 13 // Dashboard hooks. 14 add_action( 'activity_box_end', 'wp_dashboard_quota' ); 15 16 // Media hooks. 17 add_action( 'attachment_submitbox_misc_actions', 'attachment_submitbox_metadata' ); 18 add_filter( 'plupload_init', 'wp_show_heic_upload_error' ); 19 20 add_action( 'media_upload_image', 'wp_media_upload_handler' ); 21 add_action( 'media_upload_audio', 'wp_media_upload_handler' ); 22 add_action( 'media_upload_video', 'wp_media_upload_handler' ); 23 add_action( 'media_upload_file', 'wp_media_upload_handler' ); 24 25 add_action( 'post-plupload-upload-ui', 'media_upload_flash_bypass' ); 26 27 add_action( 'post-html-upload-ui', 'media_upload_html_bypass' ); 28 29 add_filter( 'async_upload_image', 'get_media_item', 10, 2 ); 30 add_filter( 'async_upload_audio', 'get_media_item', 10, 2 ); 31 add_filter( 'async_upload_video', 'get_media_item', 10, 2 ); 32 add_filter( 'async_upload_file', 'get_media_item', 10, 2 ); 33 34 add_filter( 'attachment_fields_to_save', 'image_attachment_fields_to_save', 10, 2 ); 35 36 add_filter( 'media_upload_gallery', 'media_upload_gallery' ); 37 add_filter( 'media_upload_library', 'media_upload_library' ); 38 39 add_filter( 'media_upload_tabs', 'update_gallery_tab' ); 40 41 // Misc hooks. 42 add_action( 'admin_init', 'wp_admin_headers' ); 43 add_action( 'login_init', 'wp_admin_headers' ); 44 add_action( 'admin_head', 'wp_admin_canonical_url' ); 45 add_action( 'admin_head', 'wp_color_scheme_settings' ); 46 add_action( 'admin_head', 'wp_site_icon' ); 47 add_action( 'admin_head', 'wp_admin_viewport_meta' ); 48 add_action( 'customize_controls_head', 'wp_admin_viewport_meta' ); 49 50 // Prerendering. 51 if ( ! is_customize_preview() ) { 52 add_filter( 'admin_print_styles', 'wp_resource_hints', 1 ); 53 } 54 55 add_action( 'admin_print_scripts-post.php', 'wp_page_reload_on_back_button_js' ); 56 add_action( 'admin_print_scripts-post-new.php', 'wp_page_reload_on_back_button_js' ); 57 58 add_action( 'update_option_home', 'update_home_siteurl', 10, 2 ); 59 add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 ); 60 add_action( 'update_option_page_on_front', 'update_home_siteurl', 10, 2 ); 61 add_action( 'update_option_admin_email', 'wp_site_admin_email_change_notification', 10, 3 ); 62 63 add_action( 'add_option_new_admin_email', 'update_option_new_admin_email', 10, 2 ); 64 add_action( 'update_option_new_admin_email', 'update_option_new_admin_email', 10, 2 ); 65 66 add_filter( 'heartbeat_received', 'wp_check_locked_posts', 10, 3 ); 67 add_filter( 'heartbeat_received', 'wp_refresh_post_lock', 10, 3 ); 68 add_filter( 'heartbeat_received', 'heartbeat_autosave', 500, 2 ); 69 70 add_filter( 'wp_refresh_nonces', 'wp_refresh_post_nonces', 10, 3 ); 71 add_filter( 'wp_refresh_nonces', 'wp_refresh_heartbeat_nonces' ); 72 73 add_filter( 'heartbeat_settings', 'wp_heartbeat_set_suspension' ); 74 75 // Nav Menu hooks. 76 add_action( 'admin_head-nav-menus.php', '_wp_delete_orphaned_draft_menu_items' ); 77 78 // Plugin hooks. 79 add_filter( 'allowed_options', 'option_update_filter' ); 80 81 // Plugin Install hooks. 82 add_action( 'install_plugins_featured', 'install_dashboard' ); 83 add_action( 'install_plugins_upload', 'install_plugins_upload' ); 84 add_action( 'install_plugins_search', 'display_plugins_table' ); 85 add_action( 'install_plugins_popular', 'display_plugins_table' ); 86 add_action( 'install_plugins_recommended', 'display_plugins_table' ); 87 add_action( 'install_plugins_new', 'display_plugins_table' ); 88 add_action( 'install_plugins_beta', 'display_plugins_table' ); 89 add_action( 'install_plugins_favorites', 'display_plugins_table' ); 90 add_action( 'install_plugins_pre_plugin-information', 'install_plugin_information' ); 91 92 // Template hooks. 93 add_action( 'admin_enqueue_scripts', array( 'WP_Internal_Pointers', 'enqueue_scripts' ) ); 94 add_action( 'user_register', array( 'WP_Internal_Pointers', 'dismiss_pointers_for_new_users' ) ); 95 96 // Theme hooks. 97 add_action( 'customize_controls_print_footer_scripts', 'customize_themes_print_templates' ); 98 99 // Theme Install hooks. 100 add_action( 'install_themes_pre_theme-information', 'install_theme_information' ); 101 102 // User hooks. 103 add_action( 'admin_init', 'default_password_nag_handler' ); 104 105 add_action( 'admin_notices', 'default_password_nag' ); 106 add_action( 'admin_notices', 'new_user_email_admin_notice' ); 107 108 add_action( 'profile_update', 'default_password_nag_edit_user', 10, 2 ); 109 110 add_action( 'personal_options_update', 'send_confirmation_on_profile_email' ); 111 112 // Update hooks. 113 add_action( 'load-plugins.php', 'wp_plugin_update_rows', 20 ); // After wp_update_plugins() is called. 114 add_action( 'load-themes.php', 'wp_theme_update_rows', 20 ); // After wp_update_themes() is called. 115 116 add_action( 'admin_notices', 'update_nag', 3 ); 117 add_action( 'admin_notices', 'deactivated_plugins_notice', 5 ); 118 add_action( 'admin_notices', 'paused_plugins_notice', 5 ); 119 add_action( 'admin_notices', 'paused_themes_notice', 5 ); 120 add_action( 'admin_notices', 'maintenance_nag', 10 ); 121 add_action( 'admin_notices', 'wp_recovery_mode_nag', 1 ); 122 123 add_filter( 'update_footer', 'core_update_footer' ); 124 125 // Update Core hooks. 126 add_action( '_core_updated_successfully', '_redirect_to_about_wordpress' ); 127 128 // Upgrade hooks. 129 add_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 ); 130 add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); 131 add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); 132 add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); 133 134 // Privacy hooks. 135 add_filter( 'wp_privacy_personal_data_erasure_page', 'wp_privacy_process_personal_data_erasure_page', 10, 5 ); 136 add_filter( 'wp_privacy_personal_data_export_page', 'wp_privacy_process_personal_data_export_page', 10, 7 ); 137 add_action( 'wp_privacy_personal_data_export_file', 'wp_privacy_generate_personal_data_export_file', 10 ); 138 add_action( 'wp_privacy_personal_data_erased', '_wp_privacy_send_erasure_fulfillment_notification', 10 ); 139 140 // Privacy policy text changes check. 141 add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'text_change_check' ), 100 ); 142 143 // Show a "postbox" with the text suggestions for a privacy policy. 144 add_action( 'admin_notices', array( 'WP_Privacy_Policy_Content', 'notice' ) ); 145 146 // Add the suggested policy text from WordPress. 147 add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_content' ), 1 ); 148 149 // Update the cached policy info when the policy page is updated. 150 add_action( 'post_updated', array( 'WP_Privacy_Policy_Content', '_policy_page_updated' ) ); 151 152 // Append '(Draft)' to draft page titles in the privacy page dropdown. 153 add_filter( 'list_pages', '_wp_privacy_settings_filter_draft_page_titles', 10, 2 );