wp/wp-includes/default-filters.php
changeset 16 a86126ab1dd4
parent 9 177826044cd9
child 18 be944660c56a
equal deleted inserted replaced
15:3d4e9c994f10 16:a86126ab1dd4
    10  * Not all of the default hooks are found in default-filters.php
    10  * Not all of the default hooks are found in default-filters.php
    11  *
    11  *
    12  * @package WordPress
    12  * @package WordPress
    13  */
    13  */
    14 
    14 
    15 // Strip, trim, kses, special chars for string saves
    15 // Strip, trim, kses, special chars for string saves.
    16 foreach ( array( 'pre_term_name', 'pre_comment_author_name', 'pre_link_name', 'pre_link_target', 'pre_link_rel', 'pre_user_display_name', 'pre_user_first_name', 'pre_user_last_name', 'pre_user_nickname' ) as $filter ) {
    16 foreach ( array( 'pre_term_name', 'pre_comment_author_name', 'pre_link_name', 'pre_link_target', 'pre_link_rel', 'pre_user_display_name', 'pre_user_first_name', 'pre_user_last_name', 'pre_user_nickname' ) as $filter ) {
    17 	add_filter( $filter, 'sanitize_text_field' );
    17 	add_filter( $filter, 'sanitize_text_field' );
    18 	add_filter( $filter, 'wp_filter_kses' );
    18 	add_filter( $filter, 'wp_filter_kses' );
    19 	add_filter( $filter, '_wp_specialchars', 30 );
    19 	add_filter( $filter, '_wp_specialchars', 30 );
    20 }
    20 }
    21 
    21 
    22 // Strip, kses, special chars for string display
    22 // Strip, kses, special chars for string display.
    23 foreach ( array( 'term_name', 'comment_author_name', 'link_name', 'link_target', 'link_rel', 'user_display_name', 'user_first_name', 'user_last_name', 'user_nickname' ) as $filter ) {
    23 foreach ( array( 'term_name', 'comment_author_name', 'link_name', 'link_target', 'link_rel', 'user_display_name', 'user_first_name', 'user_last_name', 'user_nickname' ) as $filter ) {
    24 	if ( is_admin() ) {
    24 	if ( is_admin() ) {
    25 		// These are expensive. Run only on admin pages for defense in depth.
    25 		// These are expensive. Run only on admin pages for defense in depth.
    26 		add_filter( $filter, 'sanitize_text_field' );
    26 		add_filter( $filter, 'sanitize_text_field' );
    27 		add_filter( $filter, 'wp_kses_data' );
    27 		add_filter( $filter, 'wp_kses_data' );
    28 	}
    28 	}
    29 	add_filter( $filter, '_wp_specialchars', 30 );
    29 	add_filter( $filter, '_wp_specialchars', 30 );
    30 }
    30 }
    31 
    31 
    32 // Kses only for textarea saves
    32 // Kses only for textarea saves.
    33 foreach ( array( 'pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description' ) as $filter ) {
    33 foreach ( array( 'pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description' ) as $filter ) {
    34 	add_filter( $filter, 'wp_filter_kses' );
    34 	add_filter( $filter, 'wp_filter_kses' );
    35 }
    35 }
    36 
    36 
    37 // Kses only for textarea admin displays
    37 // Kses only for textarea admin displays.
    38 if ( is_admin() ) {
    38 if ( is_admin() ) {
    39 	foreach ( array( 'term_description', 'link_description', 'link_notes', 'user_description' ) as $filter ) {
    39 	foreach ( array( 'term_description', 'link_description', 'link_notes', 'user_description' ) as $filter ) {
    40 		add_filter( $filter, 'wp_kses_data' );
    40 		add_filter( $filter, 'wp_kses_data' );
    41 	}
    41 	}
    42 	add_filter( 'comment_text', 'wp_kses_post' );
    42 	add_filter( 'comment_text', 'wp_kses_post' );
    43 }
    43 }
    44 
    44 
    45 // Email saves
    45 // Email saves.
    46 foreach ( array( 'pre_comment_author_email', 'pre_user_email' ) as $filter ) {
    46 foreach ( array( 'pre_comment_author_email', 'pre_user_email' ) as $filter ) {
    47 	add_filter( $filter, 'trim' );
    47 	add_filter( $filter, 'trim' );
    48 	add_filter( $filter, 'sanitize_email' );
    48 	add_filter( $filter, 'sanitize_email' );
    49 	add_filter( $filter, 'wp_filter_kses' );
    49 	add_filter( $filter, 'wp_filter_kses' );
    50 }
    50 }
    51 
    51 
    52 // Email admin display
    52 // Email admin display.
    53 foreach ( array( 'comment_author_email', 'user_email' ) as $filter ) {
    53 foreach ( array( 'comment_author_email', 'user_email' ) as $filter ) {
    54 	add_filter( $filter, 'sanitize_email' );
    54 	add_filter( $filter, 'sanitize_email' );
    55 	if ( is_admin() ) {
    55 	if ( is_admin() ) {
    56 		add_filter( $filter, 'wp_kses_data' );
    56 		add_filter( $filter, 'wp_kses_data' );
    57 	}
    57 	}
    58 }
    58 }
    59 
    59 
    60 // Save URL
    60 // Save URL.
    61 foreach ( array(
    61 foreach ( array(
    62 	'pre_comment_author_url',
    62 	'pre_comment_author_url',
    63 	'pre_user_url',
    63 	'pre_user_url',
    64 	'pre_link_url',
    64 	'pre_link_url',
    65 	'pre_link_image',
    65 	'pre_link_image',
    69 	add_filter( $filter, 'wp_strip_all_tags' );
    69 	add_filter( $filter, 'wp_strip_all_tags' );
    70 	add_filter( $filter, 'esc_url_raw' );
    70 	add_filter( $filter, 'esc_url_raw' );
    71 	add_filter( $filter, 'wp_filter_kses' );
    71 	add_filter( $filter, 'wp_filter_kses' );
    72 }
    72 }
    73 
    73 
    74 // Display URL
    74 // Display URL.
    75 foreach ( array( 'user_url', 'link_url', 'link_image', 'link_rss', 'comment_url', 'post_guid' ) as $filter ) {
    75 foreach ( array( 'user_url', 'link_url', 'link_image', 'link_rss', 'comment_url', 'post_guid' ) as $filter ) {
    76 	if ( is_admin() ) {
    76 	if ( is_admin() ) {
    77 		add_filter( $filter, 'wp_strip_all_tags' );
    77 		add_filter( $filter, 'wp_strip_all_tags' );
    78 	}
    78 	}
    79 	add_filter( $filter, 'esc_url' );
    79 	add_filter( $filter, 'esc_url' );
    80 	if ( is_admin() ) {
    80 	if ( is_admin() ) {
    81 		add_filter( $filter, 'wp_kses_data' );
    81 		add_filter( $filter, 'wp_kses_data' );
    82 	}
    82 	}
    83 }
    83 }
    84 
    84 
    85 // Slugs
    85 // Slugs.
    86 add_filter( 'pre_term_slug', 'sanitize_title' );
    86 add_filter( 'pre_term_slug', 'sanitize_title' );
    87 add_filter( 'wp_insert_post_data', '_wp_customize_changeset_filter_insert_post_data', 10, 2 );
    87 add_filter( 'wp_insert_post_data', '_wp_customize_changeset_filter_insert_post_data', 10, 2 );
    88 
    88 
    89 // Keys
    89 // Keys.
    90 foreach ( array( 'pre_post_type', 'pre_post_status', 'pre_post_comment_status', 'pre_post_ping_status' ) as $filter ) {
    90 foreach ( array( 'pre_post_type', 'pre_post_status', 'pre_post_comment_status', 'pre_post_ping_status' ) as $filter ) {
    91 	add_filter( $filter, 'sanitize_key' );
    91 	add_filter( $filter, 'sanitize_key' );
    92 }
    92 }
    93 
    93 
    94 // Mime types
    94 // Mime types.
    95 add_filter( 'pre_post_mime_type', 'sanitize_mime_type' );
    95 add_filter( 'pre_post_mime_type', 'sanitize_mime_type' );
    96 add_filter( 'post_mime_type', 'sanitize_mime_type' );
    96 add_filter( 'post_mime_type', 'sanitize_mime_type' );
    97 
    97 
    98 // Meta
    98 // Meta.
    99 add_filter( 'register_meta_args', '_wp_register_meta_args_whitelist', 10, 2 );
    99 add_filter( 'register_meta_args', '_wp_register_meta_args_allowed_list', 10, 2 );
   100 
   100 
   101 // Post meta
   101 // Post meta.
   102 add_action( 'added_post_meta', 'wp_cache_set_posts_last_changed' );
   102 add_action( 'added_post_meta', 'wp_cache_set_posts_last_changed' );
   103 add_action( 'updated_post_meta', 'wp_cache_set_posts_last_changed' );
   103 add_action( 'updated_post_meta', 'wp_cache_set_posts_last_changed' );
   104 add_action( 'deleted_post_meta', 'wp_cache_set_posts_last_changed' );
   104 add_action( 'deleted_post_meta', 'wp_cache_set_posts_last_changed' );
   105 
   105 
   106 // Term meta
   106 // Term meta.
   107 add_action( 'added_term_meta', 'wp_cache_set_terms_last_changed' );
   107 add_action( 'added_term_meta', 'wp_cache_set_terms_last_changed' );
   108 add_action( 'updated_term_meta', 'wp_cache_set_terms_last_changed' );
   108 add_action( 'updated_term_meta', 'wp_cache_set_terms_last_changed' );
   109 add_action( 'deleted_term_meta', 'wp_cache_set_terms_last_changed' );
   109 add_action( 'deleted_term_meta', 'wp_cache_set_terms_last_changed' );
   110 add_filter( 'get_term_metadata', 'wp_check_term_meta_support_prefilter' );
   110 add_filter( 'get_term_metadata', 'wp_check_term_meta_support_prefilter' );
   111 add_filter( 'add_term_metadata', 'wp_check_term_meta_support_prefilter' );
   111 add_filter( 'add_term_metadata', 'wp_check_term_meta_support_prefilter' );
   114 add_filter( 'get_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   114 add_filter( 'get_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   115 add_filter( 'update_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   115 add_filter( 'update_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   116 add_filter( 'delete_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   116 add_filter( 'delete_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
   117 add_filter( 'update_term_metadata_cache', 'wp_check_term_meta_support_prefilter' );
   117 add_filter( 'update_term_metadata_cache', 'wp_check_term_meta_support_prefilter' );
   118 
   118 
   119 // Comment meta
   119 // Comment meta.
   120 add_action( 'added_comment_meta', 'wp_cache_set_comments_last_changed' );
   120 add_action( 'added_comment_meta', 'wp_cache_set_comments_last_changed' );
   121 add_action( 'updated_comment_meta', 'wp_cache_set_comments_last_changed' );
   121 add_action( 'updated_comment_meta', 'wp_cache_set_comments_last_changed' );
   122 add_action( 'deleted_comment_meta', 'wp_cache_set_comments_last_changed' );
   122 add_action( 'deleted_comment_meta', 'wp_cache_set_comments_last_changed' );
   123 
   123 
   124 // Places to balance tags on input
   124 // Places to balance tags on input.
   125 foreach ( array( 'content_save_pre', 'excerpt_save_pre', 'comment_save_pre', 'pre_comment_content' ) as $filter ) {
   125 foreach ( array( 'content_save_pre', 'excerpt_save_pre', 'comment_save_pre', 'pre_comment_content' ) as $filter ) {
   126 	add_filter( $filter, 'convert_invalid_entities' );
   126 	add_filter( $filter, 'convert_invalid_entities' );
   127 	add_filter( $filter, 'balanceTags', 50 );
   127 	add_filter( $filter, 'balanceTags', 50 );
   128 }
   128 }
   129 
   129 
   135 	add_filter( $filter, 'wptexturize' );
   135 	add_filter( $filter, 'wptexturize' );
   136 	add_filter( $filter, 'convert_chars' );
   136 	add_filter( $filter, 'convert_chars' );
   137 	add_filter( $filter, 'esc_html' );
   137 	add_filter( $filter, 'esc_html' );
   138 }
   138 }
   139 
   139 
   140 // Format WordPress
   140 // Format WordPress.
   141 foreach ( array( 'the_content', 'the_title', 'wp_title' ) as $filter ) {
   141 foreach ( array( 'the_content', 'the_title', 'wp_title' ) as $filter ) {
   142 	add_filter( $filter, 'capital_P_dangit', 11 );
   142 	add_filter( $filter, 'capital_P_dangit', 11 );
   143 }
   143 }
   144 add_filter( 'comment_text', 'capital_P_dangit', 31 );
   144 add_filter( 'comment_text', 'capital_P_dangit', 31 );
   145 
   145 
   146 // Format titles
   146 // Format titles.
   147 foreach ( array( 'single_post_title', 'single_cat_title', 'single_tag_title', 'single_month_title', 'nav_menu_attr_title', 'nav_menu_description' ) as $filter ) {
   147 foreach ( array( 'single_post_title', 'single_cat_title', 'single_tag_title', 'single_month_title', 'nav_menu_attr_title', 'nav_menu_description' ) as $filter ) {
   148 	add_filter( $filter, 'wptexturize' );
   148 	add_filter( $filter, 'wptexturize' );
   149 	add_filter( $filter, 'strip_tags' );
   149 	add_filter( $filter, 'strip_tags' );
   150 }
   150 }
   151 
   151 
   155 	add_filter( $filter, 'convert_chars' );
   155 	add_filter( $filter, 'convert_chars' );
   156 	add_filter( $filter, 'wpautop' );
   156 	add_filter( $filter, 'wpautop' );
   157 	add_filter( $filter, 'shortcode_unautop' );
   157 	add_filter( $filter, 'shortcode_unautop' );
   158 }
   158 }
   159 
   159 
   160 // Format for RSS
   160 // Format for RSS.
   161 add_filter( 'term_name_rss', 'convert_chars' );
   161 add_filter( 'term_name_rss', 'convert_chars' );
   162 
   162 
   163 // Pre save hierarchy
   163 // Pre save hierarchy.
   164 add_filter( 'wp_insert_post_parent', 'wp_check_post_hierarchy_for_loops', 10, 2 );
   164 add_filter( 'wp_insert_post_parent', 'wp_check_post_hierarchy_for_loops', 10, 2 );
   165 add_filter( 'wp_update_term_parent', 'wp_check_term_hierarchy_for_loops', 10, 3 );
   165 add_filter( 'wp_update_term_parent', 'wp_check_term_hierarchy_for_loops', 10, 3 );
   166 
   166 
   167 // Display filters
   167 // Display filters.
   168 add_filter( 'the_title', 'wptexturize' );
   168 add_filter( 'the_title', 'wptexturize' );
   169 add_filter( 'the_title', 'convert_chars' );
   169 add_filter( 'the_title', 'convert_chars' );
   170 add_filter( 'the_title', 'trim' );
   170 add_filter( 'the_title', 'trim' );
   171 
   171 
   172 add_filter( 'the_content', 'do_blocks', 9 );
   172 add_filter( 'the_content', 'do_blocks', 9 );
   173 add_filter( 'the_content', 'wptexturize' );
   173 add_filter( 'the_content', 'wptexturize' );
   174 add_filter( 'the_content', 'convert_smilies', 20 );
   174 add_filter( 'the_content', 'convert_smilies', 20 );
   175 add_filter( 'the_content', 'wpautop' );
   175 add_filter( 'the_content', 'wpautop' );
   176 add_filter( 'the_content', 'shortcode_unautop' );
   176 add_filter( 'the_content', 'shortcode_unautop' );
   177 add_filter( 'the_content', 'prepend_attachment' );
   177 add_filter( 'the_content', 'prepend_attachment' );
   178 add_filter( 'the_content', 'wp_make_content_images_responsive' );
   178 add_filter( 'the_content', 'wp_filter_content_tags' );
   179 
   179 
   180 add_filter( 'the_excerpt', 'wptexturize' );
   180 add_filter( 'the_excerpt', 'wptexturize' );
   181 add_filter( 'the_excerpt', 'convert_smilies' );
   181 add_filter( 'the_excerpt', 'convert_smilies' );
   182 add_filter( 'the_excerpt', 'convert_chars' );
   182 add_filter( 'the_excerpt', 'convert_chars' );
   183 add_filter( 'the_excerpt', 'wpautop' );
   183 add_filter( 'the_excerpt', 'wpautop' );
   184 add_filter( 'the_excerpt', 'shortcode_unautop' );
   184 add_filter( 'the_excerpt', 'shortcode_unautop' );
       
   185 add_filter( 'the_excerpt', 'wp_filter_content_tags' );
   185 add_filter( 'get_the_excerpt', 'wp_trim_excerpt', 10, 2 );
   186 add_filter( 'get_the_excerpt', 'wp_trim_excerpt', 10, 2 );
   186 
   187 
   187 add_filter( 'the_post_thumbnail_caption', 'wptexturize' );
   188 add_filter( 'the_post_thumbnail_caption', 'wptexturize' );
   188 add_filter( 'the_post_thumbnail_caption', 'convert_smilies' );
   189 add_filter( 'the_post_thumbnail_caption', 'convert_smilies' );
   189 add_filter( 'the_post_thumbnail_caption', 'convert_chars' );
   190 add_filter( 'the_post_thumbnail_caption', 'convert_chars' );
   205 add_filter( 'widget_text_content', 'capital_P_dangit', 11 );
   206 add_filter( 'widget_text_content', 'capital_P_dangit', 11 );
   206 add_filter( 'widget_text_content', 'wptexturize' );
   207 add_filter( 'widget_text_content', 'wptexturize' );
   207 add_filter( 'widget_text_content', 'convert_smilies', 20 );
   208 add_filter( 'widget_text_content', 'convert_smilies', 20 );
   208 add_filter( 'widget_text_content', 'wpautop' );
   209 add_filter( 'widget_text_content', 'wpautop' );
   209 add_filter( 'widget_text_content', 'shortcode_unautop' );
   210 add_filter( 'widget_text_content', 'shortcode_unautop' );
       
   211 add_filter( 'widget_text_content', 'wp_filter_content_tags' );
   210 add_filter( 'widget_text_content', 'do_shortcode', 11 ); // Runs after wpautop(); note that $post global will be null when shortcodes run.
   212 add_filter( 'widget_text_content', 'do_shortcode', 11 ); // Runs after wpautop(); note that $post global will be null when shortcodes run.
   211 
   213 
   212 add_filter( 'date_i18n', 'wp_maybe_decline_date' );
   214 // RSS filters.
   213 
       
   214 // RSS filters
       
   215 add_filter( 'the_title_rss', 'strip_tags' );
   215 add_filter( 'the_title_rss', 'strip_tags' );
   216 add_filter( 'the_title_rss', 'ent2ncr', 8 );
   216 add_filter( 'the_title_rss', 'ent2ncr', 8 );
   217 add_filter( 'the_title_rss', 'esc_html' );
   217 add_filter( 'the_title_rss', 'esc_html' );
   218 add_filter( 'the_content_rss', 'ent2ncr', 8 );
   218 add_filter( 'the_content_rss', 'ent2ncr', 8 );
   219 add_filter( 'the_content_feed', 'wp_staticize_emoji' );
   219 add_filter( 'the_content_feed', 'wp_staticize_emoji' );
   226 add_filter( 'comment_text_rss', 'wp_staticize_emoji' );
   226 add_filter( 'comment_text_rss', 'wp_staticize_emoji' );
   227 add_filter( 'bloginfo_rss', 'ent2ncr', 8 );
   227 add_filter( 'bloginfo_rss', 'ent2ncr', 8 );
   228 add_filter( 'the_author', 'ent2ncr', 8 );
   228 add_filter( 'the_author', 'ent2ncr', 8 );
   229 add_filter( 'the_guid', 'esc_url' );
   229 add_filter( 'the_guid', 'esc_url' );
   230 
   230 
   231 // Email filters
   231 // Email filters.
   232 add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
   232 add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
   233 
   233 
   234 // Mark site as no longer fresh
   234 // Mark site as no longer fresh.
   235 foreach ( array( 'publish_post', 'publish_page', 'wp_ajax_save-widget', 'wp_ajax_widgets-order', 'customize_save_after' ) as $action ) {
   235 foreach ( array( 'publish_post', 'publish_page', 'wp_ajax_save-widget', 'wp_ajax_widgets-order', 'customize_save_after' ) as $action ) {
   236 	add_action( $action, '_delete_option_fresh_site', 0 );
   236 	add_action( $action, '_delete_option_fresh_site', 0 );
   237 }
   237 }
   238 
   238 
   239 // Misc filters
   239 // Misc filters.
   240 add_filter( 'option_ping_sites', 'privacy_ping_filter' );
   240 add_filter( 'option_ping_sites', 'privacy_ping_filter' );
   241 add_filter( 'option_blog_charset', '_wp_specialchars' ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop
   241 add_filter( 'option_blog_charset', '_wp_specialchars' ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop.
   242 add_filter( 'option_blog_charset', '_canonical_charset' );
   242 add_filter( 'option_blog_charset', '_canonical_charset' );
   243 add_filter( 'option_home', '_config_wp_home' );
   243 add_filter( 'option_home', '_config_wp_home' );
   244 add_filter( 'option_siteurl', '_config_wp_siteurl' );
   244 add_filter( 'option_siteurl', '_config_wp_siteurl' );
   245 add_filter( 'tiny_mce_before_init', '_mce_set_direction' );
   245 add_filter( 'tiny_mce_before_init', '_mce_set_direction' );
   246 add_filter( 'teeny_mce_before_init', '_mce_set_direction' );
   246 add_filter( 'teeny_mce_before_init', '_mce_set_direction' );
   247 add_filter( 'pre_kses', 'wp_pre_kses_less_than' );
   247 add_filter( 'pre_kses', 'wp_pre_kses_less_than' );
       
   248 add_filter( 'pre_kses', 'wp_pre_kses_block_attributes', 10, 3 );
   248 add_filter( 'sanitize_title', 'sanitize_title_with_dashes', 10, 3 );
   249 add_filter( 'sanitize_title', 'sanitize_title_with_dashes', 10, 3 );
   249 add_action( 'check_comment_flood', 'check_comment_flood_db', 10, 4 );
   250 add_action( 'check_comment_flood', 'check_comment_flood_db', 10, 4 );
   250 add_filter( 'comment_flood_filter', 'wp_throttle_comment_flood', 10, 3 );
   251 add_filter( 'comment_flood_filter', 'wp_throttle_comment_flood', 10, 3 );
   251 add_filter( 'pre_comment_content', 'wp_rel_nofollow', 15 );
   252 add_filter( 'pre_comment_content', 'wp_rel_ugc', 15 );
   252 add_filter( 'comment_email', 'antispambot' );
   253 add_filter( 'comment_email', 'antispambot' );
   253 add_filter( 'option_tag_base', '_wp_filter_taxonomy_base' );
   254 add_filter( 'option_tag_base', '_wp_filter_taxonomy_base' );
   254 add_filter( 'option_category_base', '_wp_filter_taxonomy_base' );
   255 add_filter( 'option_category_base', '_wp_filter_taxonomy_base' );
   255 add_filter( 'the_posts', '_close_comments_for_old_posts', 10, 2 );
   256 add_filter( 'the_posts', '_close_comments_for_old_posts', 10, 2 );
   256 add_filter( 'comments_open', '_close_comments_for_old_post', 10, 2 );
   257 add_filter( 'comments_open', '_close_comments_for_old_post', 10, 2 );
   275 add_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
   276 add_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
   276 add_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
   277 add_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
   277 add_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
   278 add_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
   278 add_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
   279 add_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
   279 
   280 
   280 // Actions
   281 // Actions.
   281 add_action( 'wp_head', '_wp_render_title_tag', 1 );
   282 add_action( 'wp_head', '_wp_render_title_tag', 1 );
   282 add_action( 'wp_head', 'wp_enqueue_scripts', 1 );
   283 add_action( 'wp_head', 'wp_enqueue_scripts', 1 );
   283 add_action( 'wp_head', 'wp_resource_hints', 2 );
   284 add_action( 'wp_head', 'wp_resource_hints', 2 );
   284 add_action( 'wp_head', 'feed_links', 2 );
   285 add_action( 'wp_head', 'feed_links', 2 );
   285 add_action( 'wp_head', 'feed_links_extra', 3 );
   286 add_action( 'wp_head', 'feed_links_extra', 3 );
   298 add_action( 'wp_head', 'wp_custom_css_cb', 101 );
   299 add_action( 'wp_head', 'wp_custom_css_cb', 101 );
   299 add_action( 'wp_head', 'wp_site_icon', 99 );
   300 add_action( 'wp_head', 'wp_site_icon', 99 );
   300 add_action( 'wp_footer', 'wp_print_footer_scripts', 20 );
   301 add_action( 'wp_footer', 'wp_print_footer_scripts', 20 );
   301 add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );
   302 add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );
   302 add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' );
   303 add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' );
       
   304 add_action( 'init', '_register_core_block_patterns_and_categories' );
   303 add_action( 'init', 'check_theme_switched', 99 );
   305 add_action( 'init', 'check_theme_switched', 99 );
   304 add_action( 'after_switch_theme', '_wp_menus_changed' );
   306 add_action( 'after_switch_theme', '_wp_menus_changed' );
   305 add_action( 'after_switch_theme', '_wp_sidebars_changed' );
   307 add_action( 'after_switch_theme', '_wp_sidebars_changed' );
   306 add_action( 'wp_print_styles', 'print_emoji_styles' );
   308 add_action( 'wp_print_styles', 'print_emoji_styles' );
   307 
   309 
   308 if ( isset( $_GET['replytocom'] ) ) {
   310 if ( isset( $_GET['replytocom'] ) ) {
   309 	add_action( 'wp_head', 'wp_no_robots' );
   311 	add_action( 'wp_head', 'wp_no_robots' );
   310 }
   312 }
   311 
   313 
   312 // Login actions
   314 // Login actions.
   313 add_filter( 'login_head', 'wp_resource_hints', 8 );
   315 add_filter( 'login_head', 'wp_resource_hints', 8 );
   314 add_action( 'login_head', 'wp_print_head_scripts', 9 );
   316 add_action( 'login_head', 'wp_print_head_scripts', 9 );
   315 add_action( 'login_head', 'print_admin_styles', 9 );
   317 add_action( 'login_head', 'print_admin_styles', 9 );
   316 add_action( 'login_head', 'wp_site_icon', 99 );
   318 add_action( 'login_head', 'wp_site_icon', 99 );
   317 add_action( 'login_footer', 'wp_print_footer_scripts', 20 );
   319 add_action( 'login_footer', 'wp_print_footer_scripts', 20 );
   318 add_action( 'login_init', 'send_frame_options_header', 10, 0 );
   320 add_action( 'login_init', 'send_frame_options_header', 10, 0 );
   319 
   321 
   320 // Feed Generator Tags
   322 // Feed generator tags.
   321 foreach ( array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' ) as $action ) {
   323 foreach ( array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' ) as $action ) {
   322 	add_action( $action, 'the_generator' );
   324 	add_action( $action, 'the_generator' );
   323 }
   325 }
   324 
   326 
   325 // Feed Site Icon
   327 // Feed Site Icon.
   326 add_action( 'atom_head', 'atom_site_icon' );
   328 add_action( 'atom_head', 'atom_site_icon' );
   327 add_action( 'rss2_head', 'rss2_site_icon' );
   329 add_action( 'rss2_head', 'rss2_site_icon' );
   328 
   330 
   329 
   331 
   330 // WP Cron
   332 // WP Cron.
   331 if ( ! defined( 'DOING_CRON' ) ) {
   333 if ( ! defined( 'DOING_CRON' ) ) {
   332 	add_action( 'init', 'wp_cron' );
   334 	add_action( 'init', 'wp_cron' );
   333 }
   335 }
   334 
   336 
   335 // 2 Actions 2 Furious
   337 // 2 Actions 2 Furious.
   336 add_action( 'do_feed_rdf', 'do_feed_rdf', 10, 1 );
   338 add_action( 'do_feed_rdf', 'do_feed_rdf', 10, 0 );
   337 add_action( 'do_feed_rss', 'do_feed_rss', 10, 1 );
   339 add_action( 'do_feed_rss', 'do_feed_rss', 10, 0 );
   338 add_action( 'do_feed_rss2', 'do_feed_rss2', 10, 1 );
   340 add_action( 'do_feed_rss2', 'do_feed_rss2', 10, 1 );
   339 add_action( 'do_feed_atom', 'do_feed_atom', 10, 1 );
   341 add_action( 'do_feed_atom', 'do_feed_atom', 10, 1 );
   340 add_action( 'do_pings', 'do_all_pings', 10, 1 );
   342 add_action( 'do_pings', 'do_all_pings', 10, 0 );
   341 add_action( 'do_robots', 'do_robots' );
   343 add_action( 'do_robots', 'do_robots' );
       
   344 add_action( 'do_favicon', 'do_favicon' );
   342 add_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10, 3 );
   345 add_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10, 3 );
   343 add_action( 'sanitize_comment_cookies', 'sanitize_comment_cookies' );
   346 add_action( 'sanitize_comment_cookies', 'sanitize_comment_cookies' );
   344 add_action( 'admin_print_scripts', 'print_emoji_detection_script' );
   347 add_action( 'admin_print_scripts', 'print_emoji_detection_script' );
   345 add_action( 'admin_print_scripts', 'print_head_scripts', 20 );
   348 add_action( 'admin_print_scripts', 'print_head_scripts', 20 );
   346 add_action( 'admin_print_footer_scripts', '_wp_footer_scripts' );
   349 add_action( 'admin_print_footer_scripts', '_wp_footer_scripts' );
   357 add_action( 'transition_post_status', '_update_term_count_on_transition_post_status', 10, 3 );
   360 add_action( 'transition_post_status', '_update_term_count_on_transition_post_status', 10, 3 );
   358 add_action( 'comment_form', 'wp_comment_form_unfiltered_html_nonce' );
   361 add_action( 'comment_form', 'wp_comment_form_unfiltered_html_nonce' );
   359 add_action( 'admin_init', 'send_frame_options_header', 10, 0 );
   362 add_action( 'admin_init', 'send_frame_options_header', 10, 0 );
   360 add_action( 'welcome_panel', 'wp_welcome_panel' );
   363 add_action( 'welcome_panel', 'wp_welcome_panel' );
   361 
   364 
   362 // Privacy
   365 // Privacy.
   363 add_action( 'user_request_action_confirmed', '_wp_privacy_account_request_confirmed' );
   366 add_action( 'user_request_action_confirmed', '_wp_privacy_account_request_confirmed' );
   364 add_action( 'user_request_action_confirmed', '_wp_privacy_send_request_confirmation_notification', 12 ); // After request marked as completed.
   367 add_action( 'user_request_action_confirmed', '_wp_privacy_send_request_confirmation_notification', 12 ); // After request marked as completed.
   365 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_comment_personal_data_exporter' );
   368 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_comment_personal_data_exporter' );
   366 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_media_personal_data_exporter' );
   369 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_media_personal_data_exporter' );
   367 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_user_personal_data_exporter', 1 );
   370 add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_user_personal_data_exporter', 1 );
   368 add_filter( 'wp_privacy_personal_data_erasers', 'wp_register_comment_personal_data_eraser' );
   371 add_filter( 'wp_privacy_personal_data_erasers', 'wp_register_comment_personal_data_eraser' );
   369 add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
   372 add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' );
   370 add_action( 'wp_privacy_delete_old_export_files', 'wp_privacy_delete_old_export_files' );
   373 add_action( 'wp_privacy_delete_old_export_files', 'wp_privacy_delete_old_export_files' );
   371 
   374 
   372 // Cron tasks
   375 // Cron tasks.
   373 add_action( 'wp_scheduled_delete', 'wp_scheduled_delete' );
   376 add_action( 'wp_scheduled_delete', 'wp_scheduled_delete' );
   374 add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts' );
   377 add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts' );
   375 add_action( 'importer_scheduled_cleanup', 'wp_delete_attachment' );
   378 add_action( 'importer_scheduled_cleanup', 'wp_delete_attachment' );
   376 add_action( 'upgrader_scheduled_cleanup', 'wp_delete_attachment' );
   379 add_action( 'upgrader_scheduled_cleanup', 'wp_delete_attachment' );
   377 add_action( 'delete_expired_transients', 'delete_expired_transients' );
   380 add_action( 'delete_expired_transients', 'delete_expired_transients' );
   378 
   381 
   379 // Navigation menu actions
   382 // Navigation menu actions.
   380 add_action( 'delete_post', '_wp_delete_post_menu_item' );
   383 add_action( 'delete_post', '_wp_delete_post_menu_item' );
   381 add_action( 'delete_term', '_wp_delete_tax_menu_item', 10, 3 );
   384 add_action( 'delete_term', '_wp_delete_tax_menu_item', 10, 3 );
   382 add_action( 'transition_post_status', '_wp_auto_add_pages_to_menu', 10, 3 );
   385 add_action( 'transition_post_status', '_wp_auto_add_pages_to_menu', 10, 3 );
   383 add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
   386 add_action( 'delete_post', '_wp_delete_customize_changeset_dependent_auto_drafts' );
   384 
   387 
   385 // Post Thumbnail CSS class filtering
   388 // Post Thumbnail CSS class filtering.
   386 add_action( 'begin_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_add' );
   389 add_action( 'begin_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_add' );
   387 add_action( 'end_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_remove' );
   390 add_action( 'end_fetch_post_thumbnail_html', '_wp_post_thumbnail_class_filter_remove' );
   388 
   391 
   389 // Redirect Old Slugs
   392 // Redirect old slugs.
   390 add_action( 'template_redirect', 'wp_old_slug_redirect' );
   393 add_action( 'template_redirect', 'wp_old_slug_redirect' );
   391 add_action( 'post_updated', 'wp_check_for_changed_slugs', 12, 3 );
   394 add_action( 'post_updated', 'wp_check_for_changed_slugs', 12, 3 );
   392 add_action( 'attachment_updated', 'wp_check_for_changed_slugs', 12, 3 );
   395 add_action( 'attachment_updated', 'wp_check_for_changed_slugs', 12, 3 );
   393 
   396 
   394 // Redirect Old Dates
   397 // Redirect old dates.
   395 add_action( 'post_updated', 'wp_check_for_changed_dates', 12, 3 );
   398 add_action( 'post_updated', 'wp_check_for_changed_dates', 12, 3 );
   396 add_action( 'attachment_updated', 'wp_check_for_changed_dates', 12, 3 );
   399 add_action( 'attachment_updated', 'wp_check_for_changed_dates', 12, 3 );
   397 
   400 
   398 // Nonce check for Post Previews
   401 // Nonce check for post previews.
   399 add_action( 'init', '_show_post_preview' );
   402 add_action( 'init', '_show_post_preview' );
   400 
   403 
   401 // Output JS to reset window.name for previews
   404 // Output JS to reset window.name for previews.
   402 add_action( 'wp_head', 'wp_post_preview_js', 1 );
   405 add_action( 'wp_head', 'wp_post_preview_js', 1 );
   403 
   406 
   404 // Timezone
   407 // Timezone.
   405 add_filter( 'pre_option_gmt_offset', 'wp_timezone_override_offset' );
   408 add_filter( 'pre_option_gmt_offset', 'wp_timezone_override_offset' );
   406 
   409 
   407 // Admin Color Schemes
   410 // Admin color schemes.
   408 add_action( 'admin_init', 'register_admin_color_schemes', 1 );
   411 add_action( 'admin_init', 'register_admin_color_schemes', 1 );
   409 add_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
   412 add_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
   410 
   413 
   411 // If the upgrade hasn't run yet, assume link manager is used.
   414 // If the upgrade hasn't run yet, assume link manager is used.
   412 add_filter( 'default_option_link_manager_enabled', '__return_true' );
   415 add_filter( 'default_option_link_manager_enabled', '__return_true' );
   413 
   416 
   414 // This option no longer exists; tell plugins we always support auto-embedding.
   417 // This option no longer exists; tell plugins we always support auto-embedding.
   415 add_filter( 'pre_option_embed_autourls', '__return_true' );
   418 add_filter( 'pre_option_embed_autourls', '__return_true' );
   416 
   419 
   417 // Default settings for heartbeat
   420 // Default settings for heartbeat.
   418 add_filter( 'heartbeat_settings', 'wp_heartbeat_settings' );
   421 add_filter( 'heartbeat_settings', 'wp_heartbeat_settings' );
   419 
   422 
   420 // Check if the user is logged out
   423 // Check if the user is logged out.
   421 add_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
   424 add_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
   422 add_filter( 'heartbeat_send', 'wp_auth_check' );
   425 add_filter( 'heartbeat_send', 'wp_auth_check' );
   423 add_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );
   426 add_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );
   424 
   427 
   425 // Default authentication filters
   428 // Default authentication filters.
   426 add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
   429 add_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
   427 add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 );
   430 add_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 );
   428 add_filter( 'authenticate', 'wp_authenticate_spam_check', 99 );
   431 add_filter( 'authenticate', 'wp_authenticate_spam_check', 99 );
   429 add_filter( 'determine_current_user', 'wp_validate_auth_cookie' );
   432 add_filter( 'determine_current_user', 'wp_validate_auth_cookie' );
   430 add_filter( 'determine_current_user', 'wp_validate_logged_in_cookie', 20 );
   433 add_filter( 'determine_current_user', 'wp_validate_logged_in_cookie', 20 );
   434 add_action( 'split_shared_term', '_wp_check_split_default_terms', 10, 4 );
   437 add_action( 'split_shared_term', '_wp_check_split_default_terms', 10, 4 );
   435 add_action( 'split_shared_term', '_wp_check_split_terms_in_menus', 10, 4 );
   438 add_action( 'split_shared_term', '_wp_check_split_terms_in_menus', 10, 4 );
   436 add_action( 'split_shared_term', '_wp_check_split_nav_menu_terms', 10, 4 );
   439 add_action( 'split_shared_term', '_wp_check_split_nav_menu_terms', 10, 4 );
   437 add_action( 'wp_split_shared_term_batch', '_wp_batch_split_terms' );
   440 add_action( 'wp_split_shared_term_batch', '_wp_batch_split_terms' );
   438 
   441 
       
   442 // Comment type updates.
       
   443 add_action( 'admin_init', '_wp_check_for_scheduled_update_comment_type' );
       
   444 add_action( 'wp_update_comment_type_batch', '_wp_batch_update_comment_type' );
       
   445 
   439 // Email notifications.
   446 // Email notifications.
   440 add_action( 'comment_post', 'wp_new_comment_notify_moderator' );
   447 add_action( 'comment_post', 'wp_new_comment_notify_moderator' );
   441 add_action( 'comment_post', 'wp_new_comment_notify_postauthor' );
   448 add_action( 'comment_post', 'wp_new_comment_notify_postauthor' );
   442 add_action( 'after_password_reset', 'wp_password_change_notification' );
   449 add_action( 'after_password_reset', 'wp_password_change_notification' );
   443 add_action( 'register_new_user', 'wp_send_new_user_notifications' );
   450 add_action( 'register_new_user', 'wp_send_new_user_notifications' );
   448 add_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
   455 add_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
   449 add_action( 'rest_api_init', 'register_initial_settings', 10 );
   456 add_action( 'rest_api_init', 'register_initial_settings', 10 );
   450 add_action( 'rest_api_init', 'create_initial_rest_routes', 99 );
   457 add_action( 'rest_api_init', 'create_initial_rest_routes', 99 );
   451 add_action( 'parse_request', 'rest_api_loaded' );
   458 add_action( 'parse_request', 'rest_api_loaded' );
   452 
   459 
       
   460 // Sitemaps actions.
       
   461 add_action( 'init', 'wp_sitemaps_get_server' );
       
   462 
   453 /**
   463 /**
   454  * Filters formerly mixed into wp-includes
   464  * Filters formerly mixed into wp-includes.
   455  */
   465  */
   456 // Theme
   466 // Theme.
       
   467 add_action( 'setup_theme', 'create_initial_theme_features', 0 );
   457 add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
   468 add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
   458 add_action( 'wp_head', '_custom_logo_header_styles' );
   469 add_action( 'wp_head', '_custom_logo_header_styles' );
   459 add_action( 'plugins_loaded', '_wp_customize_include' );
   470 add_action( 'plugins_loaded', '_wp_customize_include' );
   460 add_action( 'transition_post_status', '_wp_customize_publish_changeset', 10, 3 );
   471 add_action( 'transition_post_status', '_wp_customize_publish_changeset', 10, 3 );
   461 add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
   472 add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
   462 add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
   473 add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
   463 add_action( 'transition_post_status', '_wp_keep_alive_customize_changeset_dependent_auto_drafts', 20, 3 );
   474 add_action( 'transition_post_status', '_wp_keep_alive_customize_changeset_dependent_auto_drafts', 20, 3 );
   464 
   475 
   465 // Calendar widget cache
   476 // Calendar widget cache.
   466 add_action( 'save_post', 'delete_get_calendar_cache' );
   477 add_action( 'save_post', 'delete_get_calendar_cache' );
   467 add_action( 'delete_post', 'delete_get_calendar_cache' );
   478 add_action( 'delete_post', 'delete_get_calendar_cache' );
   468 add_action( 'update_option_start_of_week', 'delete_get_calendar_cache' );
   479 add_action( 'update_option_start_of_week', 'delete_get_calendar_cache' );
   469 add_action( 'update_option_gmt_offset', 'delete_get_calendar_cache' );
   480 add_action( 'update_option_gmt_offset', 'delete_get_calendar_cache' );
   470 
   481 
   471 // Author
   482 // Author.
   472 add_action( 'transition_post_status', '__clear_multi_author_cache' );
   483 add_action( 'transition_post_status', '__clear_multi_author_cache' );
   473 
   484 
   474 // Post
   485 // Post.
   475 add_action( 'init', 'create_initial_post_types', 0 ); // highest priority
   486 add_action( 'init', 'create_initial_post_types', 0 ); // Highest priority.
   476 add_action( 'admin_menu', '_add_post_type_submenus' );
   487 add_action( 'admin_menu', '_add_post_type_submenus' );
   477 add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
   488 add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
   478 add_action( 'wp_trash_post', '_reset_front_page_settings_for_post' );
   489 add_action( 'wp_trash_post', '_reset_front_page_settings_for_post' );
   479 add_action( 'change_locale', 'create_initial_post_types' );
   490 add_action( 'change_locale', 'create_initial_post_types' );
   480 
   491 
   481 // Post Formats
   492 // Post Formats.
   482 add_filter( 'request', '_post_format_request' );
   493 add_filter( 'request', '_post_format_request' );
   483 add_filter( 'term_link', '_post_format_link', 10, 3 );
   494 add_filter( 'term_link', '_post_format_link', 10, 3 );
   484 add_filter( 'get_post_format', '_post_format_get_term' );
   495 add_filter( 'get_post_format', '_post_format_get_term' );
   485 add_filter( 'get_terms', '_post_format_get_terms', 10, 3 );
   496 add_filter( 'get_terms', '_post_format_get_terms', 10, 3 );
   486 add_filter( 'wp_get_object_terms', '_post_format_wp_get_object_terms' );
   497 add_filter( 'wp_get_object_terms', '_post_format_wp_get_object_terms' );
   487 
   498 
   488 // KSES
   499 // KSES.
   489 add_action( 'init', 'kses_init' );
   500 add_action( 'init', 'kses_init' );
   490 add_action( 'set_current_user', 'kses_init' );
   501 add_action( 'set_current_user', 'kses_init' );
   491 
   502 
   492 // Script Loader
   503 // Script Loader.
   493 add_action( 'wp_default_scripts', 'wp_default_scripts' );
   504 add_action( 'wp_default_scripts', 'wp_default_scripts' );
   494 add_action( 'wp_default_scripts', 'wp_default_packages' );
   505 add_action( 'wp_default_scripts', 'wp_default_packages' );
   495 
   506 
   496 add_action( 'wp_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
   507 add_action( 'wp_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
   497 add_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
   508 add_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
   501 add_action( 'enqueue_block_editor_assets', 'wp_enqueue_registered_block_scripts_and_styles' );
   512 add_action( 'enqueue_block_editor_assets', 'wp_enqueue_registered_block_scripts_and_styles' );
   502 add_action( 'admin_print_scripts-index.php', 'wp_localize_community_events' );
   513 add_action( 'admin_print_scripts-index.php', 'wp_localize_community_events' );
   503 add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
   514 add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
   504 add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
   515 add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
   505 add_filter( 'customize_controls_print_styles', 'wp_resource_hints', 1 );
   516 add_filter( 'customize_controls_print_styles', 'wp_resource_hints', 1 );
       
   517 add_action( 'enqueue_block_assets', 'enqueue_block_styles_assets', 30 );
       
   518 add_action( 'enqueue_block_editor_assets', 'enqueue_editor_block_styles_assets' );
       
   519 add_action( 'enqueue_block_editor_assets', 'wp_enqueue_editor_block_directory_assets' );
   506 
   520 
   507 add_action( 'wp_default_styles', 'wp_default_styles' );
   521 add_action( 'wp_default_styles', 'wp_default_styles' );
   508 add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
   522 add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
   509 
   523 
   510 // Taxonomy
   524 // Taxonomy.
   511 add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
   525 add_action( 'init', 'create_initial_taxonomies', 0 ); // Highest priority.
   512 add_action( 'change_locale', 'create_initial_taxonomies' );
   526 add_action( 'change_locale', 'create_initial_taxonomies' );
   513 
   527 
   514 // Canonical
   528 // Canonical.
   515 add_action( 'template_redirect', 'redirect_canonical' );
   529 add_action( 'template_redirect', 'redirect_canonical' );
   516 add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
   530 add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
   517 
   531 
   518 // Shortcodes
   532 // Shortcodes.
   519 add_filter( 'the_content', 'do_shortcode', 11 ); // AFTER wpautop()
   533 add_filter( 'the_content', 'do_shortcode', 11 ); // AFTER wpautop().
   520 
   534 
   521 // Media
   535 // Media.
   522 add_action( 'wp_playlist_scripts', 'wp_playlist_scripts' );
   536 add_action( 'wp_playlist_scripts', 'wp_playlist_scripts' );
   523 add_action( 'customize_controls_enqueue_scripts', 'wp_plupload_default_settings' );
   537 add_action( 'customize_controls_enqueue_scripts', 'wp_plupload_default_settings' );
   524 
   538 add_action( 'plugins_loaded', '_wp_add_additional_image_sizes', 0 );
   525 // Nav menu
   539 add_filter( 'plupload_default_settings', 'wp_show_heic_upload_error' );
       
   540 
       
   541 // Nav menu.
   526 add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2 );
   542 add_filter( 'nav_menu_item_id', '_nav_menu_item_id_use_once', 10, 2 );
   527 
   543 
   528 // Widgets
   544 // Widgets.
   529 add_action( 'init', 'wp_widgets_init', 1 );
   545 add_action( 'init', 'wp_widgets_init', 1 );
   530 
   546 
   531 // Admin Bar
   547 // Admin Bar.
   532 // Don't remove. Wrong way to disable.
   548 // Don't remove. Wrong way to disable.
   533 add_action( 'template_redirect', '_wp_admin_bar_init', 0 );
   549 add_action( 'template_redirect', '_wp_admin_bar_init', 0 );
   534 add_action( 'admin_init', '_wp_admin_bar_init' );
   550 add_action( 'admin_init', '_wp_admin_bar_init' );
   535 add_action( 'before_signup_header', '_wp_admin_bar_init' );
   551 add_action( 'before_signup_header', '_wp_admin_bar_init' );
   536 add_action( 'activate_header', '_wp_admin_bar_init' );
   552 add_action( 'activate_header', '_wp_admin_bar_init' );
   537 add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
   553 add_action( 'wp_body_open', 'wp_admin_bar_render', 0 );
       
   554 add_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); // Back-compat for themes not using `wp_body_open`.
   538 add_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
   555 add_action( 'in_admin_header', 'wp_admin_bar_render', 0 );
   539 
   556 
   540 // Former admin filters that can also be hooked on the front end
   557 // Former admin filters that can also be hooked on the front end.
   541 add_action( 'media_buttons', 'media_buttons' );
   558 add_action( 'media_buttons', 'media_buttons' );
   542 add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
   559 add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
   543 add_filter( 'media_send_to_editor', 'image_media_send_to_editor', 10, 3 );
   560 add_filter( 'media_send_to_editor', 'image_media_send_to_editor', 10, 3 );
   544 
   561 
   545 // Embeds
   562 // Embeds.
   546 add_action( 'rest_api_init', 'wp_oembed_register_route' );
   563 add_action( 'rest_api_init', 'wp_oembed_register_route' );
   547 add_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
   564 add_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
   548 
   565 
   549 add_action( 'wp_head', 'wp_oembed_add_discovery_links' );
   566 add_action( 'wp_head', 'wp_oembed_add_discovery_links' );
   550 add_action( 'wp_head', 'wp_oembed_add_host_js' );
   567 add_action( 'wp_head', 'wp_oembed_add_host_js' );
   570 add_filter( 'the_excerpt_embed', 'convert_chars' );
   587 add_filter( 'the_excerpt_embed', 'convert_chars' );
   571 add_filter( 'the_excerpt_embed', 'wpautop' );
   588 add_filter( 'the_excerpt_embed', 'wpautop' );
   572 add_filter( 'the_excerpt_embed', 'shortcode_unautop' );
   589 add_filter( 'the_excerpt_embed', 'shortcode_unautop' );
   573 add_filter( 'the_excerpt_embed', 'wp_embed_excerpt_attachment' );
   590 add_filter( 'the_excerpt_embed', 'wp_embed_excerpt_attachment' );
   574 
   591 
       
   592 add_filter( 'oembed_dataparse', 'wp_filter_oembed_iframe_title_attribute', 5, 3 );
   575 add_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10, 3 );
   593 add_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10, 3 );
   576 add_filter( 'oembed_dataparse', 'wp_filter_oembed_iframe_title_attribute', 20, 3 );
       
   577 add_filter( 'oembed_response_data', 'get_oembed_response_data_rich', 10, 4 );
   594 add_filter( 'oembed_response_data', 'get_oembed_response_data_rich', 10, 4 );
   578 add_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10, 3 );
   595 add_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10, 3 );
   579 
   596 
   580 // Capabilities
   597 // Capabilities.
   581 add_filter( 'user_has_cap', 'wp_maybe_grant_install_languages_cap', 1 );
   598 add_filter( 'user_has_cap', 'wp_maybe_grant_install_languages_cap', 1 );
   582 add_filter( 'user_has_cap', 'wp_maybe_grant_resume_extensions_caps', 1 );
   599 add_filter( 'user_has_cap', 'wp_maybe_grant_resume_extensions_caps', 1 );
   583 add_filter( 'user_has_cap', 'wp_maybe_grant_site_health_caps', 1, 4 );
   600 add_filter( 'user_has_cap', 'wp_maybe_grant_site_health_caps', 1, 4 );
   584 
   601 
   585 unset( $filter, $action );
   602 unset( $filter, $action );