admin-filters.php 6.4 KB

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