wp/wp-includes/default-filters.php
changeset 7 cf61fcea0001
parent 5 5e2f62d02dcd
child 9 177826044cd9
equal deleted inserted replaced
6:490d5cc509ed 7:cf61fcea0001
    73 		add_filter( $filter, 'wp_kses_data'    );
    73 		add_filter( $filter, 'wp_kses_data'    );
    74 }
    74 }
    75 
    75 
    76 // Slugs
    76 // Slugs
    77 add_filter( 'pre_term_slug', 'sanitize_title' );
    77 add_filter( 'pre_term_slug', 'sanitize_title' );
       
    78 add_filter( 'wp_insert_post_data', '_wp_customize_changeset_filter_insert_post_data', 10, 2 );
    78 
    79 
    79 // Keys
    80 // Keys
    80 foreach ( array( 'pre_post_type', 'pre_post_status', 'pre_post_comment_status', 'pre_post_ping_status' ) as $filter ) {
    81 foreach ( array( 'pre_post_type', 'pre_post_status', 'pre_post_comment_status', 'pre_post_ping_status' ) as $filter ) {
    81 	add_filter( $filter, 'sanitize_key' );
    82 	add_filter( $filter, 'sanitize_key' );
    82 }
    83 }
    83 
    84 
    84 // Mime types
    85 // Mime types
    85 add_filter( 'pre_post_mime_type', 'sanitize_mime_type' );
    86 add_filter( 'pre_post_mime_type', 'sanitize_mime_type' );
    86 add_filter( 'post_mime_type', 'sanitize_mime_type' );
    87 add_filter( 'post_mime_type', 'sanitize_mime_type' );
    87 
    88 
       
    89 // Meta
       
    90 add_filter( 'register_meta_args', '_wp_register_meta_args_whitelist', 10, 2 );
       
    91 
    88 // Places to balance tags on input
    92 // Places to balance tags on input
    89 foreach ( array( 'content_save_pre', 'excerpt_save_pre', 'comment_save_pre', 'pre_comment_content' ) as $filter ) {
    93 foreach ( array( 'content_save_pre', 'excerpt_save_pre', 'comment_save_pre', 'pre_comment_content' ) as $filter ) {
       
    94 	add_filter( $filter, 'convert_invalid_entities' );
    90 	add_filter( $filter, 'balanceTags', 50 );
    95 	add_filter( $filter, 'balanceTags', 50 );
    91 }
    96 }
    92 
    97 
    93 // Format strings for display.
    98 // Format strings for display.
    94 foreach ( array( 'comment_author', 'term_name', 'link_name', 'link_description', 'link_notes', 'bloginfo', 'wp_title', 'widget_title' ) as $filter ) {
    99 foreach ( array( 'comment_author', 'term_name', 'link_name', 'link_description', 'link_notes', 'bloginfo', 'wp_title', 'widget_title' ) as $filter ) {
   107 	add_filter( $filter, 'wptexturize' );
   112 	add_filter( $filter, 'wptexturize' );
   108 	add_filter( $filter, 'strip_tags'  );
   113 	add_filter( $filter, 'strip_tags'  );
   109 }
   114 }
   110 
   115 
   111 // Format text area for display.
   116 // Format text area for display.
   112 foreach ( array( 'term_description' ) as $filter ) {
   117 foreach ( array( 'term_description', 'get_the_post_type_description' ) as $filter ) {
   113 	add_filter( $filter, 'wptexturize'      );
   118 	add_filter( $filter, 'wptexturize'      );
   114 	add_filter( $filter, 'convert_chars'    );
   119 	add_filter( $filter, 'convert_chars'    );
   115 	add_filter( $filter, 'wpautop'          );
   120 	add_filter( $filter, 'wpautop'          );
   116 	add_filter( $filter, 'shortcode_unautop');
   121 	add_filter( $filter, 'shortcode_unautop');
   117 }
   122 }
   126 // Display filters
   131 // Display filters
   127 add_filter( 'the_title', 'wptexturize'   );
   132 add_filter( 'the_title', 'wptexturize'   );
   128 add_filter( 'the_title', 'convert_chars' );
   133 add_filter( 'the_title', 'convert_chars' );
   129 add_filter( 'the_title', 'trim'          );
   134 add_filter( 'the_title', 'trim'          );
   130 
   135 
   131 add_filter( 'the_content', 'wptexturize'        );
   136 add_filter( 'the_content', 'wptexturize'                       );
   132 add_filter( 'the_content', 'convert_smilies'    );
   137 add_filter( 'the_content', 'convert_smilies',               20 );
   133 add_filter( 'the_content', 'convert_chars'      );
   138 add_filter( 'the_content', 'wpautop'                           );
   134 add_filter( 'the_content', 'wpautop'            );
   139 add_filter( 'the_content', 'shortcode_unautop'                 );
   135 add_filter( 'the_content', 'shortcode_unautop'  );
   140 add_filter( 'the_content', 'prepend_attachment'                );
   136 add_filter( 'the_content', 'prepend_attachment' );
   141 add_filter( 'the_content', 'wp_make_content_images_responsive' );
   137 
   142 
   138 add_filter( 'the_excerpt',     'wptexturize'      );
   143 add_filter( 'the_excerpt',     'wptexturize'      );
   139 add_filter( 'the_excerpt',     'convert_smilies'  );
   144 add_filter( 'the_excerpt',     'convert_smilies'  );
   140 add_filter( 'the_excerpt',     'convert_chars'    );
   145 add_filter( 'the_excerpt',     'convert_chars'    );
   141 add_filter( 'the_excerpt',     'wpautop'          );
   146 add_filter( 'the_excerpt',     'wpautop'          );
   142 add_filter( 'the_excerpt',     'shortcode_unautop');
   147 add_filter( 'the_excerpt',     'shortcode_unautop');
   143 add_filter( 'get_the_excerpt', 'wp_trim_excerpt'  );
   148 add_filter( 'get_the_excerpt', 'wp_trim_excerpt'  );
   144 
   149 
       
   150 add_filter( 'the_post_thumbnail_caption', 'wptexturize'     );
       
   151 add_filter( 'the_post_thumbnail_caption', 'convert_smilies' );
       
   152 add_filter( 'the_post_thumbnail_caption', 'convert_chars'   );
       
   153 
   145 add_filter( 'comment_text', 'wptexturize'            );
   154 add_filter( 'comment_text', 'wptexturize'            );
   146 add_filter( 'comment_text', 'convert_chars'          );
   155 add_filter( 'comment_text', 'convert_chars'          );
   147 add_filter( 'comment_text', 'make_clickable',      9 );
   156 add_filter( 'comment_text', 'make_clickable',      9 );
   148 add_filter( 'comment_text', 'force_balance_tags', 25 );
   157 add_filter( 'comment_text', 'force_balance_tags', 25 );
   149 add_filter( 'comment_text', 'convert_smilies',    20 );
   158 add_filter( 'comment_text', 'convert_smilies',    20 );
   153 
   162 
   154 add_filter( 'list_cats',         'wptexturize' );
   163 add_filter( 'list_cats',         'wptexturize' );
   155 
   164 
   156 add_filter( 'wp_sprintf', 'wp_sprintf_l', 10, 2 );
   165 add_filter( 'wp_sprintf', 'wp_sprintf_l', 10, 2 );
   157 
   166 
       
   167 add_filter( 'widget_text',         'balanceTags'          );
       
   168 add_filter( 'widget_text_content', 'capital_P_dangit', 11 );
       
   169 add_filter( 'widget_text_content', 'wptexturize'          );
       
   170 add_filter( 'widget_text_content', 'convert_smilies',  20 );
       
   171 add_filter( 'widget_text_content', 'wpautop'              );
       
   172 add_filter( 'widget_text_content', 'shortcode_unautop'    );
       
   173 add_filter( 'widget_text_content', 'do_shortcode',     11 ); // Runs after wpautop(); note that $post global will be null when shortcodes run.
       
   174 
       
   175 add_filter( 'date_i18n', 'wp_maybe_decline_date' );
       
   176 
   158 // RSS filters
   177 // RSS filters
   159 add_filter( 'the_title_rss',      'strip_tags'                    );
   178 add_filter( 'the_title_rss',      'strip_tags'                    );
   160 add_filter( 'the_title_rss',      'ent2ncr',                    8 );
   179 add_filter( 'the_title_rss',      'ent2ncr',                    8 );
   161 add_filter( 'the_title_rss',      'esc_html'                      );
   180 add_filter( 'the_title_rss',      'esc_html'                      );
   162 add_filter( 'the_content_rss',    'ent2ncr',                    8 );
   181 add_filter( 'the_content_rss',    'ent2ncr',                    8 );
   163 add_filter( 'the_content_feed',   'wp_staticize_emoji'            );
   182 add_filter( 'the_content_feed',   'wp_staticize_emoji'            );
       
   183 add_filter( 'the_content_feed',   '_oembed_filter_feed_content'   );
   164 add_filter( 'the_excerpt_rss',    'convert_chars'                 );
   184 add_filter( 'the_excerpt_rss',    'convert_chars'                 );
   165 add_filter( 'the_excerpt_rss',    'ent2ncr',                    8 );
   185 add_filter( 'the_excerpt_rss',    'ent2ncr',                    8 );
   166 add_filter( 'comment_author_rss', 'ent2ncr',                    8 );
   186 add_filter( 'comment_author_rss', 'ent2ncr',                    8 );
   167 add_filter( 'comment_text_rss',   'ent2ncr',                    8 );
   187 add_filter( 'comment_text_rss',   'ent2ncr',                    8 );
   168 add_filter( 'comment_text_rss',   'esc_html'                      );
   188 add_filter( 'comment_text_rss',   'esc_html'                      );
   171 add_filter( 'the_author',         'ent2ncr',                    8 );
   191 add_filter( 'the_author',         'ent2ncr',                    8 );
   172 add_filter( 'the_guid',           'esc_url'                       );
   192 add_filter( 'the_guid',           'esc_url'                       );
   173 
   193 
   174 // Email filters
   194 // Email filters
   175 add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
   195 add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
       
   196 
       
   197 // Mark site as no longer fresh
       
   198 foreach ( array( 'publish_post', 'publish_page', 'wp_ajax_save-widget', 'wp_ajax_widgets-order', 'customize_save_after' ) as $action ) {
       
   199 	add_action( $action, '_delete_option_fresh_site', 0 );
       
   200 }
   176 
   201 
   177 // Misc filters
   202 // Misc filters
   178 add_filter( 'option_ping_sites',        'privacy_ping_filter'                 );
   203 add_filter( 'option_ping_sites',        'privacy_ping_filter'                 );
   179 add_filter( 'option_blog_charset',      '_wp_specialchars'                    ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop
   204 add_filter( 'option_blog_charset',      '_wp_specialchars'                    ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop
   180 add_filter( 'option_blog_charset',      '_canonical_charset'                  );
   205 add_filter( 'option_blog_charset',      '_canonical_charset'                  );
   182 add_filter( 'option_siteurl',           '_config_wp_siteurl'                  );
   207 add_filter( 'option_siteurl',           '_config_wp_siteurl'                  );
   183 add_filter( 'tiny_mce_before_init',     '_mce_set_direction'                  );
   208 add_filter( 'tiny_mce_before_init',     '_mce_set_direction'                  );
   184 add_filter( 'teeny_mce_before_init',    '_mce_set_direction'                  );
   209 add_filter( 'teeny_mce_before_init',    '_mce_set_direction'                  );
   185 add_filter( 'pre_kses',                 'wp_pre_kses_less_than'               );
   210 add_filter( 'pre_kses',                 'wp_pre_kses_less_than'               );
   186 add_filter( 'sanitize_title',           'sanitize_title_with_dashes',   10, 3 );
   211 add_filter( 'sanitize_title',           'sanitize_title_with_dashes',   10, 3 );
   187 add_action( 'check_comment_flood',      'check_comment_flood_db',       10, 3 );
   212 add_action( 'check_comment_flood',      'check_comment_flood_db',       10, 4 );
   188 add_filter( 'comment_flood_filter',     'wp_throttle_comment_flood',    10, 3 );
   213 add_filter( 'comment_flood_filter',     'wp_throttle_comment_flood',    10, 3 );
   189 add_filter( 'pre_comment_content',      'wp_rel_nofollow',              15    );
   214 add_filter( 'pre_comment_content',      'wp_rel_nofollow',              15    );
   190 add_filter( 'comment_email',            'antispambot'                         );
   215 add_filter( 'comment_email',            'antispambot'                         );
   191 add_filter( 'option_tag_base',          '_wp_filter_taxonomy_base'            );
   216 add_filter( 'option_tag_base',          '_wp_filter_taxonomy_base'            );
   192 add_filter( 'option_category_base',     '_wp_filter_taxonomy_base'            );
   217 add_filter( 'option_category_base',     '_wp_filter_taxonomy_base'            );
   198 add_filter( 'nav_menu_meta_box_object', '_wp_nav_menu_meta_box_object'        );
   223 add_filter( 'nav_menu_meta_box_object', '_wp_nav_menu_meta_box_object'        );
   199 add_filter( 'pingback_ping_source_uri', 'pingback_ping_source_uri'            );
   224 add_filter( 'pingback_ping_source_uri', 'pingback_ping_source_uri'            );
   200 add_filter( 'xmlrpc_pingback_error',    'xmlrpc_pingback_error'               );
   225 add_filter( 'xmlrpc_pingback_error',    'xmlrpc_pingback_error'               );
   201 add_filter( 'title_save_pre',           'trim'                                );
   226 add_filter( 'title_save_pre',           'trim'                                );
   202 
   227 
   203 add_filter( 'http_request_host_is_external', 'allowed_http_request_hosts', 10, 2 );
   228 add_action( 'transition_comment_status', '_clear_modified_cache_on_transition_comment_status', 10, 2 );
       
   229 
       
   230 add_filter( 'http_request_host_is_external',    'allowed_http_request_hosts', 10, 2 );
       
   231 
       
   232 // REST API filters.
       
   233 add_action( 'xmlrpc_rsd_apis',            'rest_output_rsd' );
       
   234 add_action( 'wp_head',                    'rest_output_link_wp_head', 10, 0 );
       
   235 add_action( 'template_redirect',          'rest_output_link_header', 11, 0 );
       
   236 add_action( 'auth_cookie_malformed',      'rest_cookie_collect_status' );
       
   237 add_action( 'auth_cookie_expired',        'rest_cookie_collect_status' );
       
   238 add_action( 'auth_cookie_bad_username',   'rest_cookie_collect_status' );
       
   239 add_action( 'auth_cookie_bad_hash',       'rest_cookie_collect_status' );
       
   240 add_action( 'auth_cookie_valid',          'rest_cookie_collect_status' );
       
   241 add_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
   204 
   242 
   205 // Actions
   243 // Actions
   206 add_action( 'wp_head',             '_wp_render_title_tag',            1     );
   244 add_action( 'wp_head',             '_wp_render_title_tag',            1     );
   207 add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
   245 add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
       
   246 add_action( 'wp_head',             'wp_resource_hints',               2     );
   208 add_action( 'wp_head',             'feed_links',                      2     );
   247 add_action( 'wp_head',             'feed_links',                      2     );
   209 add_action( 'wp_head',             'feed_links_extra',                3     );
   248 add_action( 'wp_head',             'feed_links_extra',                3     );
   210 add_action( 'wp_head',             'rsd_link'                               );
   249 add_action( 'wp_head',             'rsd_link'                               );
   211 add_action( 'wp_head',             'wlwmanifest_link'                       );
   250 add_action( 'wp_head',             'wlwmanifest_link'                       );
   212 add_action( 'wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );
   251 add_action( 'wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );
   216 add_action( 'wp_head',             'print_emoji_detection_script',     7    );
   255 add_action( 'wp_head',             'print_emoji_detection_script',     7    );
   217 add_action( 'wp_head',             'wp_print_styles',                  8    );
   256 add_action( 'wp_head',             'wp_print_styles',                  8    );
   218 add_action( 'wp_head',             'wp_print_head_scripts',            9    );
   257 add_action( 'wp_head',             'wp_print_head_scripts',            9    );
   219 add_action( 'wp_head',             'wp_generator'                           );
   258 add_action( 'wp_head',             'wp_generator'                           );
   220 add_action( 'wp_head',             'rel_canonical'                          );
   259 add_action( 'wp_head',             'rel_canonical'                          );
       
   260 add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
       
   261 add_action( 'wp_head',             'wp_custom_css_cb',                101   );
       
   262 add_action( 'wp_head',             'wp_site_icon',                    99    );
   221 add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
   263 add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
   222 add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
       
   223 add_action( 'template_redirect',   'wp_shortlink_header',             11, 0 );
   264 add_action( 'template_redirect',   'wp_shortlink_header',             11, 0 );
   224 add_action( 'wp_print_footer_scripts', '_wp_footer_scripts'                 );
   265 add_action( 'wp_print_footer_scripts', '_wp_footer_scripts'                 );
   225 add_action( 'init',                'check_theme_switched',            99    );
   266 add_action( 'init',                'check_theme_switched',            99    );
       
   267 add_action( 'after_switch_theme',  '_wp_menus_changed'                      );
   226 add_action( 'after_switch_theme',  '_wp_sidebars_changed'                   );
   268 add_action( 'after_switch_theme',  '_wp_sidebars_changed'                   );
   227 add_action( 'wp_print_styles',     'print_emoji_styles'                     );
   269 add_action( 'wp_print_styles',     'print_emoji_styles'                     );
   228 
   270 
   229 if ( isset( $_GET['replytocom'] ) )
   271 if ( isset( $_GET['replytocom'] ) )
   230     add_action( 'wp_head', 'wp_no_robots' );
   272     add_action( 'wp_head', 'wp_no_robots' );
   231 
   273 
   232 // Login actions
   274 // Login actions
       
   275 add_filter( 'login_head',          'wp_resource_hints',             8     );
   233 add_action( 'login_head',          'wp_print_head_scripts',         9     );
   276 add_action( 'login_head',          'wp_print_head_scripts',         9     );
       
   277 add_action( 'login_head',          'print_admin_styles',            9     );
       
   278 add_action( 'login_head',          'wp_site_icon',                  99    );
   234 add_action( 'login_footer',        'wp_print_footer_scripts',       20    );
   279 add_action( 'login_footer',        'wp_print_footer_scripts',       20    );
   235 add_action( 'login_init',          'send_frame_options_header',     10, 0 );
   280 add_action( 'login_init',          'send_frame_options_header',     10, 0 );
   236 
   281 
   237 // Feed Generator Tags
   282 // Feed Generator Tags
   238 foreach ( array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' ) as $action ) {
   283 foreach ( array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' ) as $action ) {
   239 	add_action( $action, 'the_generator' );
   284 	add_action( $action, 'the_generator' );
   240 }
   285 }
       
   286 
       
   287 // Feed Site Icon
       
   288 add_action( 'atom_head', 'atom_site_icon' );
       
   289 add_action( 'rss2_head', 'rss2_site_icon' );
       
   290 
   241 
   291 
   242 // WP Cron
   292 // WP Cron
   243 if ( !defined( 'DOING_CRON' ) )
   293 if ( !defined( 'DOING_CRON' ) )
   244 	add_action( 'init', 'wp_cron' );
   294 	add_action( 'init', 'wp_cron' );
   245 
   295 
   248 add_action( 'do_feed_rss',                'do_feed_rss',                             10, 1 );
   298 add_action( 'do_feed_rss',                'do_feed_rss',                             10, 1 );
   249 add_action( 'do_feed_rss2',               'do_feed_rss2',                            10, 1 );
   299 add_action( 'do_feed_rss2',               'do_feed_rss2',                            10, 1 );
   250 add_action( 'do_feed_atom',               'do_feed_atom',                            10, 1 );
   300 add_action( 'do_feed_atom',               'do_feed_atom',                            10, 1 );
   251 add_action( 'do_pings',                   'do_all_pings',                            10, 1 );
   301 add_action( 'do_pings',                   'do_all_pings',                            10, 1 );
   252 add_action( 'do_robots',                  'do_robots'                                      );
   302 add_action( 'do_robots',                  'do_robots'                                      );
   253 add_action( 'set_comment_cookies',        'wp_set_comment_cookies',                  10, 2 );
   303 add_action( 'set_comment_cookies',        'wp_set_comment_cookies',                  10, 3 );
   254 add_action( 'sanitize_comment_cookies',   'sanitize_comment_cookies'                       );
   304 add_action( 'sanitize_comment_cookies',   'sanitize_comment_cookies'                       );
   255 add_action( 'admin_print_scripts',        'print_emoji_detection_script'                   );
   305 add_action( 'admin_print_scripts',        'print_emoji_detection_script'                   );
   256 add_action( 'admin_print_scripts',        'print_head_scripts',                      20    );
   306 add_action( 'admin_print_scripts',        'print_head_scripts',                      20    );
   257 add_action( 'admin_print_footer_scripts', '_wp_footer_scripts'                             );
   307 add_action( 'admin_print_footer_scripts', '_wp_footer_scripts'                             );
   258 add_action( 'admin_print_styles',         'print_emoji_styles'                             );
   308 add_action( 'admin_print_styles',         'print_emoji_styles'                             );
   265 add_action( 'post_updated',               'wp_save_post_revision',                   10, 1 );
   315 add_action( 'post_updated',               'wp_save_post_revision',                   10, 1 );
   266 add_action( 'publish_post',               '_publish_post_hook',                       5, 1 );
   316 add_action( 'publish_post',               '_publish_post_hook',                       5, 1 );
   267 add_action( 'transition_post_status',     '_transition_post_status',                  5, 3 );
   317 add_action( 'transition_post_status',     '_transition_post_status',                  5, 3 );
   268 add_action( 'transition_post_status',     '_update_term_count_on_transition_post_status', 10, 3 );
   318 add_action( 'transition_post_status',     '_update_term_count_on_transition_post_status', 10, 3 );
   269 add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          );
   319 add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          );
   270 add_action( 'wp_scheduled_delete',        'wp_scheduled_delete'                            );
       
   271 add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts'                      );
       
   272 add_action( 'admin_init',                 'send_frame_options_header',               10, 0 );
   320 add_action( 'admin_init',                 'send_frame_options_header',               10, 0 );
   273 add_action( 'importer_scheduled_cleanup', 'wp_delete_attachment'                           );
   321 add_action( 'try_gutenberg_panel',        'wp_try_gutenberg_panel'                         );
   274 add_action( 'upgrader_scheduled_cleanup', 'wp_delete_attachment'                           );
       
   275 add_action( 'welcome_panel',              'wp_welcome_panel'                               );
   322 add_action( 'welcome_panel',              'wp_welcome_panel'                               );
       
   323 
       
   324 // Privacy
       
   325 add_action( 'user_request_action_confirmed', '_wp_privacy_account_request_confirmed' );
       
   326 add_action( 'user_request_action_confirmed', '_wp_privacy_send_request_confirmation_notification', 12 ); // After request marked as completed.
       
   327 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_comment_personal_data_exporter' );
       
   328 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_media_personal_data_exporter' );
       
   329 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_user_personal_data_exporter', 1 );
       
   330 add_filter( 'wp_privacy_personal_data_erasers', 'wp_register_comment_personal_data_eraser' );
       
   331 add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
       
   332 add_action( 'wp_privacy_delete_old_export_files', 'wp_privacy_delete_old_export_files' );
       
   333 
       
   334 // Cron tasks
       
   335 add_action( 'wp_scheduled_delete',            'wp_scheduled_delete'       );
       
   336 add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts'     );
       
   337 add_action( 'importer_scheduled_cleanup',     'wp_delete_attachment'      );
       
   338 add_action( 'upgrader_scheduled_cleanup',     'wp_delete_attachment'      );
       
   339 add_action( 'delete_expired_transients',      'delete_expired_transients' );
   276 
   340 
   277 // Navigation menu actions
   341 // Navigation menu actions
   278 add_action( 'delete_post',                '_wp_delete_post_menu_item'         );
   342 add_action( 'delete_post',                '_wp_delete_post_menu_item'         );
   279 add_action( 'delete_term',                '_wp_delete_tax_menu_item',   10, 3 );
   343 add_action( 'delete_term',                '_wp_delete_tax_menu_item',   10, 3 );
   280 add_action( 'transition_post_status',     '_wp_auto_add_pages_to_menu', 10, 3 );
   344 add_action( 'transition_post_status',     '_wp_auto_add_pages_to_menu', 10, 3 );
       
   345 add_action( 'delete_post',                '_wp_delete_customize_changeset_dependent_auto_drafts' );
   281 
   346 
   282 // Post Thumbnail CSS class filtering
   347 // Post Thumbnail CSS class filtering
   283 add_action( 'begin_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_add'    );
   348 add_action( 'begin_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_add'    );
   284 add_action( 'end_fetch_post_thumbnail_html',   '_wp_post_thumbnail_class_filter_remove' );
   349 add_action( 'end_fetch_post_thumbnail_html',   '_wp_post_thumbnail_class_filter_remove' );
   285 
   350 
   286 // Redirect Old Slugs
   351 // Redirect Old Slugs
   287 add_action( 'template_redirect', 'wp_old_slug_redirect'              );
   352 add_action( 'template_redirect',  'wp_old_slug_redirect'              );
   288 add_action( 'post_updated',      'wp_check_for_changed_slugs', 12, 3 );
   353 add_action( 'post_updated',       'wp_check_for_changed_slugs', 12, 3 );
       
   354 add_action( 'attachment_updated', 'wp_check_for_changed_slugs', 12, 3 );
       
   355 
       
   356 // Redirect Old Dates
       
   357 add_action( 'post_updated',       'wp_check_for_changed_dates', 12, 3 );
       
   358 add_action( 'attachment_updated', 'wp_check_for_changed_dates', 12, 3 );
   289 
   359 
   290 // Nonce check for Post Previews
   360 // Nonce check for Post Previews
   291 add_action( 'init', '_show_post_preview' );
   361 add_action( 'init', '_show_post_preview' );
       
   362 
       
   363 // Output JS to reset window.name for previews
       
   364 add_action( 'wp_head', 'wp_post_preview_js', 1 );
   292 
   365 
   293 // Timezone
   366 // Timezone
   294 add_filter( 'pre_option_gmt_offset','wp_timezone_override_offset' );
   367 add_filter( 'pre_option_gmt_offset','wp_timezone_override_offset' );
   295 
   368 
   296 // Admin Color Schemes
   369 // Admin Color Schemes
   299 
   372 
   300 // If the upgrade hasn't run yet, assume link manager is used.
   373 // If the upgrade hasn't run yet, assume link manager is used.
   301 add_filter( 'default_option_link_manager_enabled', '__return_true' );
   374 add_filter( 'default_option_link_manager_enabled', '__return_true' );
   302 
   375 
   303 // This option no longer exists; tell plugins we always support auto-embedding.
   376 // This option no longer exists; tell plugins we always support auto-embedding.
   304 add_filter( 'default_option_embed_autourls', '__return_true' );
   377 add_filter( 'pre_option_embed_autourls', '__return_true' );
   305 
   378 
   306 // Default settings for heartbeat
   379 // Default settings for heartbeat
   307 add_filter( 'heartbeat_settings', 'wp_heartbeat_settings' );
   380 add_filter( 'heartbeat_settings', 'wp_heartbeat_settings' );
   308 
   381 
   309 // Check if the user is logged out
   382 // Check if the user is logged out
   311 add_filter( 'heartbeat_send',        'wp_auth_check' );
   384 add_filter( 'heartbeat_send',        'wp_auth_check' );
   312 add_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );
   385 add_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );
   313 
   386 
   314 // Default authentication filters
   387 // Default authentication filters
   315 add_filter( 'authenticate', 'wp_authenticate_username_password',  20, 3 );
   388 add_filter( 'authenticate', 'wp_authenticate_username_password',  20, 3 );
       
   389 add_filter( 'authenticate', 'wp_authenticate_email_password',     20, 3 );
   316 add_filter( 'authenticate', 'wp_authenticate_spam_check',         99    );
   390 add_filter( 'authenticate', 'wp_authenticate_spam_check',         99    );
   317 add_filter( 'determine_current_user', 'wp_validate_auth_cookie'          );
   391 add_filter( 'determine_current_user', 'wp_validate_auth_cookie'          );
   318 add_filter( 'determine_current_user', 'wp_validate_logged_in_cookie', 20 );
   392 add_filter( 'determine_current_user', 'wp_validate_logged_in_cookie', 20 );
   319 
   393 
   320 // Split term updates.
   394 // Split term updates.
       
   395 add_action( 'admin_init',        '_wp_check_for_scheduled_split_terms' );
   321 add_action( 'split_shared_term', '_wp_check_split_default_terms',  10, 4 );
   396 add_action( 'split_shared_term', '_wp_check_split_default_terms',  10, 4 );
   322 add_action( 'split_shared_term', '_wp_check_split_terms_in_menus', 10, 4 );
   397 add_action( 'split_shared_term', '_wp_check_split_terms_in_menus', 10, 4 );
       
   398 add_action( 'split_shared_term', '_wp_check_split_nav_menu_terms', 10, 4 );
       
   399 add_action( 'wp_split_shared_term_batch', '_wp_batch_split_terms' );
       
   400 
       
   401 // Email notifications.
       
   402 add_action( 'comment_post', 'wp_new_comment_notify_moderator' );
       
   403 add_action( 'comment_post', 'wp_new_comment_notify_postauthor' );
       
   404 add_action( 'after_password_reset', 'wp_password_change_notification' );
       
   405 add_action( 'register_new_user',      'wp_send_new_user_notifications' );
       
   406 add_action( 'edit_user_created_user', 'wp_send_new_user_notifications', 10, 2 );
       
   407 
       
   408 // REST API actions.
       
   409 add_action( 'init',          'rest_api_init' );
       
   410 add_action( 'rest_api_init', 'rest_api_default_filters',   10, 1 );
       
   411 add_action( 'rest_api_init', 'register_initial_settings',  10 );
       
   412 add_action( 'rest_api_init', 'create_initial_rest_routes', 99 );
       
   413 add_action( 'parse_request', 'rest_api_loaded' );
   323 
   414 
   324 /**
   415 /**
   325  * Filters formerly mixed into wp-includes
   416  * Filters formerly mixed into wp-includes
   326  */
   417  */
   327 // Theme
   418 // Theme
   328 add_action( 'setup_theme', 'preview_theme' );
       
   329 add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
   419 add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
       
   420 add_action( 'wp_head', '_custom_logo_header_styles' );
   330 add_action( 'plugins_loaded', '_wp_customize_include' );
   421 add_action( 'plugins_loaded', '_wp_customize_include' );
       
   422 add_action( 'transition_post_status', '_wp_customize_publish_changeset', 10, 3 );
   331 add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
   423 add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
   332 add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
   424 add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
       
   425 add_action( 'transition_post_status', '_wp_keep_alive_customize_changeset_dependent_auto_drafts', 20, 3 );
   333 
   426 
   334 // Calendar widget cache
   427 // Calendar widget cache
   335 add_action( 'save_post', 'delete_get_calendar_cache' );
   428 add_action( 'save_post', 'delete_get_calendar_cache' );
   336 add_action( 'delete_post', 'delete_get_calendar_cache' );
   429 add_action( 'delete_post', 'delete_get_calendar_cache' );
   337 add_action( 'update_option_start_of_week', 'delete_get_calendar_cache' );
   430 add_action( 'update_option_start_of_week', 'delete_get_calendar_cache' );
   343 // Post
   436 // Post
   344 add_action( 'init', 'create_initial_post_types', 0 ); // highest priority
   437 add_action( 'init', 'create_initial_post_types', 0 ); // highest priority
   345 add_action( 'admin_menu', '_add_post_type_submenus' );
   438 add_action( 'admin_menu', '_add_post_type_submenus' );
   346 add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
   439 add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
   347 add_action( 'wp_trash_post',      '_reset_front_page_settings_for_post' );
   440 add_action( 'wp_trash_post',      '_reset_front_page_settings_for_post' );
       
   441 add_action( 'change_locale', 'create_initial_post_types' );
   348 
   442 
   349 // Post Formats
   443 // Post Formats
   350 add_filter( 'request', '_post_format_request' );
   444 add_filter( 'request', '_post_format_request' );
   351 add_filter( 'term_link', '_post_format_link', 10, 3 );
   445 add_filter( 'term_link', '_post_format_link', 10, 3 );
   352 add_filter( 'get_post_format', '_post_format_get_term' );
   446 add_filter( 'get_post_format', '_post_format_get_term' );
   357 add_action( 'init', 'kses_init' );
   451 add_action( 'init', 'kses_init' );
   358 add_action( 'set_current_user', 'kses_init' );
   452 add_action( 'set_current_user', 'kses_init' );
   359 
   453 
   360 // Script Loader
   454 // Script Loader
   361 add_action( 'wp_default_scripts', 'wp_default_scripts' );
   455 add_action( 'wp_default_scripts', 'wp_default_scripts' );
       
   456 add_action( 'wp_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
       
   457 add_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
       
   458 add_action( 'admin_print_scripts-index.php', 'wp_localize_community_events' );
   362 add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
   459 add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
   363 add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
   460 add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
       
   461 add_filter( 'customize_controls_print_styles', 'wp_resource_hints', 1 );
   364 
   462 
   365 add_action( 'wp_default_styles', 'wp_default_styles' );
   463 add_action( 'wp_default_styles', 'wp_default_styles' );
   366 add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
   464 add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
   367 
   465 
   368 // Taxonomy
   466 // Taxonomy
   369 add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
   467 add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
       
   468 add_action( 'change_locale', 'create_initial_taxonomies' );
   370 
   469 
   371 // Canonical
   470 // Canonical
   372 add_action( 'template_redirect', 'redirect_canonical' );
   471 add_action( 'template_redirect', 'redirect_canonical' );
   373 add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
   472 add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
   374 
   473 
   379 add_action( 'wp_playlist_scripts', 'wp_playlist_scripts' );
   478 add_action( 'wp_playlist_scripts', 'wp_playlist_scripts' );
   380 add_action( 'customize_controls_enqueue_scripts', 'wp_plupload_default_settings' );
   479 add_action( 'customize_controls_enqueue_scripts', 'wp_plupload_default_settings' );
   381 
   480 
   382 // Nav menu
   481 // Nav menu
   383 add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2 );
   482 add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2 );
       
   483 
       
   484 // Widgets
       
   485 add_action( 'init', 'wp_widgets_init', 1 );
   384 
   486 
   385 // Admin Bar
   487 // Admin Bar
   386 // Don't remove. Wrong way to disable.
   488 // Don't remove. Wrong way to disable.
   387 add_action( 'template_redirect', '_wp_admin_bar_init', 0 );
   489 add_action( 'template_redirect', '_wp_admin_bar_init', 0 );
   388 add_action( 'admin_init', '_wp_admin_bar_init' );
   490 add_action( 'admin_init', '_wp_admin_bar_init' );
       
   491 add_action( 'before_signup_header', '_wp_admin_bar_init' );
       
   492 add_action( 'activate_header', '_wp_admin_bar_init' );
   389 add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
   493 add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
   390 add_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
   494 add_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
   391 
   495 
       
   496 // Former admin filters that can also be hooked on the front end
       
   497 add_action( 'media_buttons', 'media_buttons' );
       
   498 add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
       
   499 add_filter( 'media_send_to_editor', 'image_media_send_to_editor', 10, 3 );
       
   500 
       
   501 // Embeds
       
   502 add_action( 'rest_api_init',          'wp_oembed_register_route'              );
       
   503 add_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
       
   504 
       
   505 add_action( 'wp_head',                'wp_oembed_add_discovery_links'         );
       
   506 add_action( 'wp_head',                'wp_oembed_add_host_js'                 );
       
   507 
       
   508 add_action( 'embed_head',             'enqueue_embed_scripts',           1    );
       
   509 add_action( 'embed_head',             'print_emoji_detection_script'          );
       
   510 add_action( 'embed_head',             'print_embed_styles'                    );
       
   511 add_action( 'embed_head',             'wp_print_head_scripts',          20    );
       
   512 add_action( 'embed_head',             'wp_print_styles',                20    );
       
   513 add_action( 'embed_head',             'wp_no_robots'                          );
       
   514 add_action( 'embed_head',             'rel_canonical'                         );
       
   515 add_action( 'embed_head',             'locale_stylesheet',              30    );
       
   516 
       
   517 add_action( 'embed_content_meta',     'print_embed_comments_button'           );
       
   518 add_action( 'embed_content_meta',     'print_embed_sharing_button'            );
       
   519 
       
   520 add_action( 'embed_footer',           'print_embed_sharing_dialog'            );
       
   521 add_action( 'embed_footer',           'print_embed_scripts'                   );
       
   522 add_action( 'embed_footer',           'wp_print_footer_scripts',        20    );
       
   523 
       
   524 add_filter( 'excerpt_more',           'wp_embed_excerpt_more',          20    );
       
   525 add_filter( 'the_excerpt_embed',      'wptexturize'                           );
       
   526 add_filter( 'the_excerpt_embed',      'convert_chars'                         );
       
   527 add_filter( 'the_excerpt_embed',      'wpautop'                               );
       
   528 add_filter( 'the_excerpt_embed',      'shortcode_unautop'                     );
       
   529 add_filter( 'the_excerpt_embed',      'wp_embed_excerpt_attachment'           );
       
   530 
       
   531 add_filter( 'oembed_dataparse',       'wp_filter_oembed_result',        10, 3 );
       
   532 add_filter( 'oembed_response_data',   'get_oembed_response_data_rich',  10, 4 );
       
   533 add_filter( 'pre_oembed_result',      'wp_filter_pre_oembed_result',    10, 3 );
       
   534 
       
   535 // Capabilities
       
   536 add_filter( 'user_has_cap', 'wp_maybe_grant_install_languages_cap', 1 );
       
   537 
   392 unset( $filter, $action );
   538 unset( $filter, $action );