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