Coding Standards: Use strict type check for `in_array()` and `array_search()`.

This addresses all the remaining `WordPress.PHP.StrictInArray.MissingTrueStrict` issues in core.

Includes minor code layout fixes for better readability.

Follow-up to [47550].

See #49542.
Built from https://develop.svn.wordpress.org/trunk@47557


git-svn-id: http://core.svn.wordpress.org/trunk@47332 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2020-04-09 15:43:10 +00:00
parent 7097f6cef0
commit 856e1a27b8
29 changed files with 173 additions and 78 deletions

View File

@ -83,7 +83,7 @@ class Walker_Category_Checklist extends Walker {
$args['popular_cats'] = empty( $args['popular_cats'] ) ? array() : $args['popular_cats']; $args['popular_cats'] = empty( $args['popular_cats'] ) ? array() : $args['popular_cats'];
$class = in_array( $category->term_id, $args['popular_cats'] ) ? ' class="popular-category"' : ''; $class = in_array( $category->term_id, $args['popular_cats'], true ) ? ' class="popular-category"' : '';
$args['selected_cats'] = empty( $args['selected_cats'] ) ? array() : $args['selected_cats']; $args['selected_cats'] = empty( $args['selected_cats'] ) ? array() : $args['selected_cats'];
@ -91,7 +91,7 @@ class Walker_Category_Checklist extends Walker {
$aria_checked = 'false'; $aria_checked = 'false';
$inner_class = 'category'; $inner_class = 'category';
if ( in_array( $category->term_id, $args['selected_cats'] ) ) { if ( in_array( $category->term_id, $args['selected_cats'], true ) ) {
$inner_class .= ' selected'; $inner_class .= ' selected';
$aria_checked = 'true'; $aria_checked = 'true';
} }
@ -102,10 +102,13 @@ class Walker_Category_Checklist extends Walker {
/** This filter is documented in wp-includes/category-template.php */ /** This filter is documented in wp-includes/category-template.php */
esc_html( apply_filters( 'the_category', $category->name, '', '' ) ) . '</div>'; esc_html( apply_filters( 'the_category', $category->name, '', '' ) ) . '</div>';
} else { } else {
$is_selected = in_array( $category->term_id, $args['selected_cats'], true );
$is_disabled = ! empty( $args['disabled'] );
$output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" .
'<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="' . $name . '[]" id="in-' . $taxonomy . '-' . $category->term_id . '"' . '<label class="selectit"><input value="' . $category->term_id . '" type="checkbox" name="' . $name . '[]" id="in-' . $taxonomy . '-' . $category->term_id . '"' .
checked( in_array( $category->term_id, $args['selected_cats'] ), true, false ) . checked( $is_selected, true, false ) .
disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . disabled( $is_disabled, true, false ) . ' /> ' .
/** This filter is documented in wp-includes/category-template.php */ /** This filter is documented in wp-includes/category-template.php */
esc_html( apply_filters( 'the_category', $category->name, '', '' ) ) . '</label>'; esc_html( apply_filters( 'the_category', $category->name, '', '' ) ) . '</label>';
} }

View File

@ -401,7 +401,7 @@ class WP_Filesystem_Base {
$attarray = preg_split( '//', $mode ); $attarray = preg_split( '//', $mode );
for ( $i = 0, $c = count( $attarray ); $i < $c; $i++ ) { for ( $i = 0, $c = count( $attarray ); $i < $c; $i++ ) {
$key = array_search( $attarray[ $i ], $legal ); $key = array_search( $attarray[ $i ], $legal, true );
if ( $key ) { if ( $key ) {
$realmode .= $legal[ $key ]; $realmode .= $legal[ $key ];
} }

View File

@ -505,7 +505,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
$actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>'; $actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>';
} }
if ( current_user_can( 'delete_user', $user->ID ) && ! in_array( $user->user_login, $super_admins ) ) { if ( current_user_can( 'delete_user', $user->ID ) && ! in_array( $user->user_login, $super_admins, true ) ) {
$actions['delete'] = '<a href="' . esc_url( network_admin_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'users.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user->ID ) ) ) . '" class="delete">' . __( 'Delete' ) . '</a>'; $actions['delete'] = '<a href="' . esc_url( network_admin_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'users.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user->ID ) ) ) . '" class="delete">' . __( 'Delete' ) . '</a>';
} }

View File

@ -300,7 +300,7 @@ class WP_Terms_List_Table extends WP_List_Table {
$my_parent = get_term( $p, $taxonomy ); $my_parent = get_term( $p, $taxonomy );
$my_parents[] = $my_parent; $my_parents[] = $my_parent;
$p = $my_parent->parent; $p = $my_parent->parent;
if ( in_array( $p, $parent_ids ) ) { // Prevent parent loops. if ( in_array( $p, $parent_ids, true ) ) { // Prevent parent loops.
break; break;
} }
$parent_ids[] = $p; $parent_ids[] = $p;

View File

@ -519,7 +519,7 @@ function wp_dashboard_quick_press( $error_msg = false ) {
$post = get_default_post_to_edit( 'post', true ); $post = get_default_post_to_edit( 'post', true );
$user_id = get_current_user_id(); $user_id = get_current_user_id();
// Don't create an option if this is a super admin who does not belong to this site. // Don't create an option if this is a super admin who does not belong to this site.
if ( in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user_id ) ) ) ) { if ( in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user_id ) ), true ) ) {
update_user_option( $user_id, 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID. update_user_option( $user_id, 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID.
} }
} }

View File

@ -922,19 +922,23 @@ function confirm_delete_users( $users ) {
'fields' => array( 'ID', 'user_login' ), 'fields' => array( 'ID', 'user_login' ),
) )
); );
if ( is_array( $blog_users ) && ! empty( $blog_users ) ) { if ( is_array( $blog_users ) && ! empty( $blog_users ) ) {
$user_site = "<a href='" . esc_url( get_home_url( $details->userblog_id ) ) . "'>{$details->blogname}</a>"; $user_site = "<a href='" . esc_url( get_home_url( $details->userblog_id ) ) . "'>{$details->blogname}</a>";
$user_dropdown = '<label for="reassign_user" class="screen-reader-text">' . __( 'Select a user' ) . '</label>'; $user_dropdown = '<label for="reassign_user" class="screen-reader-text">' . __( 'Select a user' ) . '</label>';
$user_dropdown .= "<select name='blog[$user_id][$key]' id='reassign_user'>"; $user_dropdown .= "<select name='blog[$user_id][$key]' id='reassign_user'>";
$user_list = ''; $user_list = '';
foreach ( $blog_users as $user ) { foreach ( $blog_users as $user ) {
if ( ! in_array( $user->ID, $allusers ) ) { if ( ! in_array( (int) $user->ID, $allusers, true ) ) {
$user_list .= "<option value='{$user->ID}'>{$user->user_login}</option>"; $user_list .= "<option value='{$user->ID}'>{$user->user_login}</option>";
} }
} }
if ( '' == $user_list ) { if ( '' == $user_list ) {
$user_list = $admin_out; $user_list = $admin_out;
} }
$user_dropdown .= $user_list; $user_dropdown .= $user_list;
$user_dropdown .= "</select>\n"; $user_dropdown .= "</select>\n";
?> ?>

View File

@ -1149,8 +1149,10 @@ function wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selecte
'post_status' => 'draft,publish', 'post_status' => 'draft,publish',
) )
); );
$messages = array();
$menu_items = array(); $messages = array();
$menu_items = array();
// Index menu items by DB ID. // Index menu items by DB ID.
foreach ( $unsorted_menu_items as $_item ) { foreach ( $unsorted_menu_items as $_item ) {
$menu_items[ $_item->db_id ] = $_item; $menu_items[ $_item->db_id ] = $_item;
@ -1173,6 +1175,7 @@ function wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selecte
); );
wp_defer_term_counting( true ); wp_defer_term_counting( true );
// Loop through all the menu items' POST variables. // Loop through all the menu items' POST variables.
if ( ! empty( $_POST['menu-item-db-id'] ) ) { if ( ! empty( $_POST['menu-item-db-id'] ) ) {
foreach ( (array) $_POST['menu-item-db-id'] as $_key => $k ) { foreach ( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
@ -1209,19 +1212,22 @@ function wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selecte
// Store 'auto-add' pages. // Store 'auto-add' pages.
$auto_add = ! empty( $_POST['auto-add-pages'] ); $auto_add = ! empty( $_POST['auto-add-pages'] );
$nav_menu_option = (array) get_option( 'nav_menu_options' ); $nav_menu_option = (array) get_option( 'nav_menu_options' );
if ( ! isset( $nav_menu_option['auto_add'] ) ) { if ( ! isset( $nav_menu_option['auto_add'] ) ) {
$nav_menu_option['auto_add'] = array(); $nav_menu_option['auto_add'] = array();
} }
if ( $auto_add ) { if ( $auto_add ) {
if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) { if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'], true ) ) {
$nav_menu_option['auto_add'][] = $nav_menu_selected_id; $nav_menu_option['auto_add'][] = $nav_menu_selected_id;
} }
} else { } else {
$key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ); $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'], true );
if ( false !== $key ) { if ( false !== $key ) {
unset( $nav_menu_option['auto_add'][ $key ] ); unset( $nav_menu_option['auto_add'][ $key ] );
} }
} }
// Remove non-existent/deleted menus. // Remove non-existent/deleted menus.
$nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) ); $nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) );
update_option( 'nav_menu_options', $nav_menu_option ); update_option( 'nav_menu_options', $nav_menu_option );

View File

@ -2170,7 +2170,7 @@ function add_option_whitelist( $new_options, $options = '' ) {
$whitelist_options[ $page ] = array(); $whitelist_options[ $page ] = array();
$whitelist_options[ $page ][] = $key; $whitelist_options[ $page ][] = $key;
} else { } else {
$pos = array_search( $key, $whitelist_options[ $page ] ); $pos = array_search( $key, $whitelist_options[ $page ], true );
if ( false === $pos ) { if ( false === $pos ) {
$whitelist_options[ $page ][] = $key; $whitelist_options[ $page ][] = $key;
} }
@ -2202,7 +2202,7 @@ function remove_option_whitelist( $del_options, $options = '' ) {
foreach ( $del_options as $page => $keys ) { foreach ( $del_options as $page => $keys ) {
foreach ( $keys as $key ) { foreach ( $keys as $key ) {
if ( isset( $whitelist_options[ $page ] ) && is_array( $whitelist_options[ $page ] ) ) { if ( isset( $whitelist_options[ $page ] ) && is_array( $whitelist_options[ $page ] ) ) {
$pos = array_search( $key, $whitelist_options[ $page ] ); $pos = array_search( $key, $whitelist_options[ $page ], true );
if ( false !== $pos ) { if ( false !== $pos ) {
unset( $whitelist_options[ $page ][ $pos ] ); unset( $whitelist_options[ $page ][ $pos ] );
} }

View File

@ -548,8 +548,8 @@ function bulk_edit_posts( $post_data = null ) {
$children[] = $parent; $children[] = $parent;
foreach ( $pages as $page ) { foreach ( $pages as $page ) {
if ( $page->ID == $parent ) { if ( (int) $page->ID === $parent ) {
$parent = $page->post_parent; $parent = (int) $page->post_parent;
break; break;
} }
} }
@ -568,7 +568,7 @@ function bulk_edit_posts( $post_data = null ) {
$post_type_object = get_post_type_object( get_post_type( $post_ID ) ); $post_type_object = get_post_type_object( get_post_type( $post_ID ) );
if ( ! isset( $post_type_object ) if ( ! isset( $post_type_object )
|| ( isset( $children ) && in_array( $post_ID, $children ) ) || ( isset( $children ) && in_array( $post_ID, $children, true ) )
|| ! current_user_can( 'edit_post', $post_ID ) || ! current_user_can( 'edit_post', $post_ID )
) { ) {
$skipped[] = $post_ID; $skipped[] = $post_ID;

View File

@ -314,7 +314,7 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
// Now, grab the initial diff. // Now, grab the initial diff.
$compare_two_mode = is_numeric( $from ); $compare_two_mode = is_numeric( $from );
if ( ! $compare_two_mode ) { if ( ! $compare_two_mode ) {
$found = array_search( $selected_revision_id, array_keys( $revisions ) ); $found = array_search( $selected_revision_id, array_keys( $revisions ), true );
if ( $found ) { if ( $found ) {
$from = array_keys( array_slice( $revisions, $found - 1, 1, true ) ); $from = array_keys( array_slice( $revisions, $found - 1, 1, true ) );
$from = reset( $from ); $from = reset( $from );

View File

@ -128,10 +128,12 @@ function meta_box_prefs( $screen ) {
$widget_title = $box['args']['__widget_basename']; $widget_title = $box['args']['__widget_basename'];
} }
$is_hidden = in_array( $box['id'], $hidden, true );
printf( printf(
'<label for="%1$s-hide"><input class="hide-postbox-tog" name="%1$s-hide" type="checkbox" id="%1$s-hide" value="%1$s" %2$s />%3$s</label>', '<label for="%1$s-hide"><input class="hide-postbox-tog" name="%1$s-hide" type="checkbox" id="%1$s-hide" value="%1$s" %2$s />%3$s</label>',
esc_attr( $box['id'] ), esc_attr( $box['id'] ),
checked( in_array( $box['id'], $hidden, true ), false, false ), checked( $is_hidden, false, false ),
$widget_title $widget_title
); );
} }

View File

@ -171,7 +171,7 @@ function wp_terms_checklist( $post_id = 0, $args = array() ) {
$keys = array_keys( $categories ); $keys = array_keys( $categories );
foreach ( $keys as $k ) { foreach ( $keys as $k ) {
if ( in_array( $categories[ $k ]->term_id, $args['selected_cats'] ) ) { if ( in_array( $categories[ $k ]->term_id, $args['selected_cats'], true ) ) {
$checked_categories[] = $categories[ $k ]; $checked_categories[] = $categories[ $k ];
unset( $categories[ $k ] ); unset( $categories[ $k ] );
} }
@ -228,13 +228,14 @@ function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $ech
$tax = get_taxonomy( $taxonomy ); $tax = get_taxonomy( $taxonomy );
$popular_ids = array(); $popular_ids = array();
foreach ( (array) $terms as $term ) { foreach ( (array) $terms as $term ) {
$popular_ids[] = $term->term_id; $popular_ids[] = $term->term_id;
if ( ! $echo ) { // Hack for Ajax use. if ( ! $echo ) { // Hack for Ajax use.
continue; continue;
} }
$id = "popular-$taxonomy-$term->term_id"; $id = "popular-$taxonomy-$term->term_id";
$checked = in_array( $term->term_id, $checked_terms ) ? 'checked="checked"' : ''; $checked = in_array( $term->term_id, $checked_terms, true ) ? 'checked="checked"' : '';
?> ?>
<li id="<?php echo $id; ?>" class="popular-category"> <li id="<?php echo $id; ?>" class="popular-category">
@ -291,7 +292,7 @@ function wp_link_category_checklist( $link_id = 0 ) {
/** This filter is documented in wp-includes/category-template.php */ /** This filter is documented in wp-includes/category-template.php */
$name = esc_html( apply_filters( 'the_category', $category->name, '', '' ) ); $name = esc_html( apply_filters( 'the_category', $category->name, '', '' ) );
$checked = in_array( $cat_id, $checked_categories ) ? ' checked="checked"' : ''; $checked = in_array( $cat_id, $checked_categories, true ) ? ' checked="checked"' : '';
echo '<li id="link-category-', $cat_id, '"><label for="in-link-category-', $cat_id, '" class="selectit"><input value="', $cat_id, '" type="checkbox" name="link_category[]" id="in-link-category-', $cat_id, '"', $checked, '/> ', $name, '</label></li>'; echo '<li id="link-category-', $cat_id, '"><label for="in-link-category-', $cat_id, '" class="selectit"><input value="', $cat_id, '" type="checkbox" name="link_category[]" id="in-link-category-', $cat_id, '"', $checked, '/> ', $name, '</label></li>';
} }
} }
@ -339,6 +340,7 @@ function get_inline_data( $post ) {
} }
$taxonomy_names = get_object_taxonomies( $post->post_type ); $taxonomy_names = get_object_taxonomies( $post->post_type );
foreach ( $taxonomy_names as $taxonomy_name ) { foreach ( $taxonomy_names as $taxonomy_name ) {
$taxonomy = get_taxonomy( $taxonomy_name ); $taxonomy = get_taxonomy( $taxonomy_name );
@ -721,7 +723,6 @@ function meta_form( $post = null ) {
<select id="metakeyselect" name="metakeyselect"> <select id="metakeyselect" name="metakeyselect">
<option value="#NONE#"><?php _e( '&mdash; Select &mdash;' ); ?></option> <option value="#NONE#"><?php _e( '&mdash; Select &mdash;' ); ?></option>
<?php <?php
foreach ( $keys as $key ) { foreach ( $keys as $key ) {
if ( is_protected_meta( $key, 'post' ) || ! current_user_can( 'add_post_meta', $post->ID, $key ) ) { if ( is_protected_meta( $key, 'post' ) || ! current_user_can( 'add_post_meta', $post->ID, $key ) ) {
continue; continue;
@ -834,6 +835,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
} }
echo "\n\n"; echo "\n\n";
$map = array( $map = array(
'mm' => array( $mm, $cur_mm ), 'mm' => array( $mm, $cur_mm ),
'jj' => array( $jj, $cur_jj ), 'jj' => array( $jj, $cur_jj ),
@ -841,6 +843,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
'hh' => array( $hh, $cur_hh ), 'hh' => array( $hh, $cur_hh ),
'mn' => array( $mn, $cur_mn ), 'mn' => array( $mn, $cur_mn ),
); );
foreach ( $map as $timeunit => $value ) { foreach ( $map as $timeunit => $value ) {
list( $unit, $curr ) = $value; list( $unit, $curr ) = $value;
@ -868,7 +871,9 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
*/ */
function page_template_dropdown( $default = '', $post_type = 'page' ) { function page_template_dropdown( $default = '', $post_type = 'page' ) {
$templates = get_page_templates( null, $post_type ); $templates = get_page_templates( null, $post_type );
ksort( $templates ); ksort( $templates );
foreach ( array_keys( $templates ) as $template ) { foreach ( array_keys( $templates ) as $template ) {
$selected = selected( $default, $templates[ $template ], false ); $selected = selected( $default, $templates[ $template ], false );
echo "\n\t<option value='" . esc_attr( $templates[ $template ] ) . "' $selected>" . esc_html( $template ) . '</option>'; echo "\n\t<option value='" . esc_attr( $templates[ $template ] ) . "' $selected>" . esc_html( $template ) . '</option>';
@ -1195,11 +1200,13 @@ function _get_plugin_from_callback( $callback ) {
// Only show errors if the meta box was registered by a plugin. // Only show errors if the meta box was registered by a plugin.
$filename = wp_normalize_path( $reflection->getFileName() ); $filename = wp_normalize_path( $reflection->getFileName() );
$plugin_dir = wp_normalize_path( WP_PLUGIN_DIR ); $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
if ( strpos( $filename, $plugin_dir ) === 0 ) { if ( strpos( $filename, $plugin_dir ) === 0 ) {
$filename = str_replace( $plugin_dir, '', $filename ); $filename = str_replace( $plugin_dir, '', $filename );
$filename = preg_replace( '|^/([^/]*/).*$|', '\\1', $filename ); $filename = preg_replace( '|^/([^/]*/).*$|', '\\1', $filename );
$plugins = get_plugins(); $plugins = get_plugins();
foreach ( $plugins as $name => $plugin ) { foreach ( $plugins as $name => $plugin ) {
if ( strpos( $name, $filename ) === 0 ) { if ( strpos( $name, $filename ) === 0 ) {
return $plugin; return $plugin;
@ -1249,6 +1256,7 @@ function do_meta_boxes( $screen, $context, $object ) {
// Grab the ones the user has manually sorted. // Grab the ones the user has manually sorted.
// Pull them out of their previous context/priority and into the one the user chose. // Pull them out of their previous context/priority and into the one the user chose.
$sorted = get_user_option( "meta-box-order_$page" ); $sorted = get_user_option( "meta-box-order_$page" );
if ( ! $already_sorted && $sorted ) { if ( ! $already_sorted && $sorted ) {
foreach ( $sorted as $box_context => $ids ) { foreach ( $sorted as $box_context => $ids ) {
foreach ( explode( ',', $ids ) as $id ) { foreach ( explode( ',', $ids ) as $id ) {
@ -1780,11 +1788,13 @@ function get_settings_errors( $setting = '', $sanitize = false ) {
// Filter the results to those of a specific setting if one was set. // Filter the results to those of a specific setting if one was set.
if ( $setting ) { if ( $setting ) {
$setting_errors = array(); $setting_errors = array();
foreach ( (array) $wp_settings_errors as $key => $details ) { foreach ( (array) $wp_settings_errors as $key => $details ) {
if ( $setting == $details['setting'] ) { if ( $setting == $details['setting'] ) {
$setting_errors[] = $wp_settings_errors[ $key ]; $setting_errors[] = $wp_settings_errors[ $key ];
} }
} }
return $setting_errors; return $setting_errors;
} }
@ -1833,6 +1843,7 @@ function settings_errors( $setting = '', $sanitize = false, $hide_on_update = fa
} }
$output = ''; $output = '';
foreach ( $settings_errors as $key => $details ) { foreach ( $settings_errors as $key => $details ) {
if ( 'updated' === $details['type'] ) { if ( 'updated' === $details['type'] ) {
$details['type'] = 'success'; $details['type'] = 'success';
@ -1855,6 +1866,7 @@ function settings_errors( $setting = '', $sanitize = false, $hide_on_update = fa
$output .= "<p><strong>{$details['message']}</strong></p>"; $output .= "<p><strong>{$details['message']}</strong></p>";
$output .= "</div> \n"; $output .= "</div> \n";
} }
echo $output; echo $output;
} }
@ -2084,6 +2096,7 @@ function _post_states( $post, $echo = true ) {
$i = 0; $i = 0;
$post_states_string .= ' &mdash; '; $post_states_string .= ' &mdash; ';
foreach ( $post_states as $state ) { foreach ( $post_states as $state ) {
++$i; ++$i;
( $i == $state_count ) ? $sep = '' : $sep = ', '; ( $i == $state_count ) ? $sep = '' : $sep = ', ';
@ -2188,7 +2201,7 @@ function _media_states( $post ) {
if ( is_random_header_image() ) { if ( is_random_header_image() ) {
$header_images = wp_list_pluck( get_uploaded_header_images(), 'attachment_id' ); $header_images = wp_list_pluck( get_uploaded_header_images(), 'attachment_id' );
if ( $meta_header == $stylesheet && in_array( $post->ID, $header_images ) ) { if ( $meta_header == $stylesheet && in_array( $post->ID, $header_images, true ) ) {
$media_states[] = __( 'Header Image' ); $media_states[] = __( 'Header Image' );
} }
} else { } else {
@ -2242,7 +2255,9 @@ function _media_states( $post ) {
if ( ! empty( $media_states ) ) { if ( ! empty( $media_states ) ) {
$state_count = count( $media_states ); $state_count = count( $media_states );
$i = 0; $i = 0;
echo ' &mdash; '; echo ' &mdash; ';
foreach ( $media_states as $state ) { foreach ( $media_states as $state ) {
++$i; ++$i;
( $i == $state_count ) ? $sep = '' : $sep = ', '; ( $i == $state_count ) ? $sep = '' : $sep = ', ';
@ -2369,12 +2384,15 @@ function get_submit_button( $text = '', $type = 'primary large', $name = 'submit
$button_shorthand = array( 'primary', 'small', 'large' ); $button_shorthand = array( 'primary', 'small', 'large' );
$classes = array( 'button' ); $classes = array( 'button' );
foreach ( $type as $t ) { foreach ( $type as $t ) {
if ( 'secondary' === $t || 'button-secondary' === $t ) { if ( 'secondary' === $t || 'button-secondary' === $t ) {
continue; continue;
} }
$classes[] = in_array( $t, $button_shorthand, true ) ? 'button-' . $t : $t; $classes[] = in_array( $t, $button_shorthand, true ) ? 'button-' . $t : $t;
} }
// Remove empty items, remove duplicate items, and finally build a string. // Remove empty items, remove duplicate items, and finally build a string.
$class = implode( ' ', array_unique( array_filter( $classes ) ) ); $class = implode( ' ', array_unique( array_filter( $classes ) ) );

View File

@ -104,8 +104,11 @@ switch ( $action ) {
$next_item_data['menu_item_parent'] != $menu_item_data['menu_item_parent'] $next_item_data['menu_item_parent'] != $menu_item_data['menu_item_parent']
) )
) { ) {
if ( in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true ) ) {
$parent_db_id = in_array( $menu_item_data['menu_item_parent'], $orders_to_dbids ) ? (int) $menu_item_data['menu_item_parent'] : 0; $parent_db_id = (int) $menu_item_data['menu_item_parent'];
} else {
$parent_db_id = 0;
}
$parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) ); $parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) );
@ -131,7 +134,7 @@ switch ( $action ) {
// The item is last but still has a parent, so bubble up. // The item is last but still has a parent, so bubble up.
} elseif ( } elseif (
! empty( $menu_item_data['menu_item_parent'] ) && ! empty( $menu_item_data['menu_item_parent'] ) &&
in_array( $menu_item_data['menu_item_parent'], $orders_to_dbids ) in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true )
) { ) {
$menu_item_data['menu_item_parent'] = (int) get_post_meta( $menu_item_data['menu_item_parent'], '_menu_item_menu_item_parent', true ); $menu_item_data['menu_item_parent'] = (int) get_post_meta( $menu_item_data['menu_item_parent'], '_menu_item_menu_item_parent', true );
update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
@ -168,11 +171,16 @@ switch ( $action ) {
// If this menu item is a child of the previous. // If this menu item is a child of the previous.
if ( if (
! empty( $menu_item_data['menu_item_parent'] ) && ! empty( $menu_item_data['menu_item_parent'] ) &&
in_array( $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ) ) && in_array( (int) $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ), true ) &&
isset( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) && isset( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) &&
( $menu_item_data['menu_item_parent'] == $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) ( $menu_item_data['menu_item_parent'] == $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] )
) { ) {
$parent_db_id = in_array( $menu_item_data['menu_item_parent'], $orders_to_dbids ) ? (int) $menu_item_data['menu_item_parent'] : 0; if ( in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true ) ) {
$parent_db_id = (int) $menu_item_data['menu_item_parent'];
} else {
$parent_db_id = 0;
}
$parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) ); $parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) );
if ( ! is_wp_error( $parent_object ) ) { if ( ! is_wp_error( $parent_object ) ) {
@ -198,7 +206,7 @@ switch ( $action ) {
! empty( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ] ) ! empty( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ] )
) { ) {
$_possible_parent_id = (int) get_post_meta( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ], '_menu_item_menu_item_parent', true ); $_possible_parent_id = (int) get_post_meta( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ], '_menu_item_menu_item_parent', true );
if ( in_array( $_possible_parent_id, array_keys( $dbids_to_orders ) ) ) { if ( in_array( $_possible_parent_id, array_keys( $dbids_to_orders ), true ) ) {
$menu_item_data['menu_item_parent'] = $_possible_parent_id; $menu_item_data['menu_item_parent'] = $_possible_parent_id;
} else { } else {
$menu_item_data['menu_item_parent'] = 0; $menu_item_data['menu_item_parent'] = 0;
@ -225,7 +233,7 @@ switch ( $action ) {
} elseif ( } elseif (
empty( $menu_item_data['menu_order'] ) || empty( $menu_item_data['menu_order'] ) ||
empty( $menu_item_data['menu_item_parent'] ) || empty( $menu_item_data['menu_item_parent'] ) ||
! in_array( $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ) ) || ! in_array( (int) $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ), true ) ||
empty( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) || empty( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) ||
$orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] != $menu_item_data['menu_item_parent'] $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] != $menu_item_data['menu_item_parent']
) { ) {
@ -800,9 +808,10 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
<?php <?php
echo esc_html( $_nav_menu->truncated_name ); echo esc_html( $_nav_menu->truncated_name );
if ( ! empty( $menu_locations ) && in_array( $_nav_menu->term_id, $menu_locations ) ) { if ( ! empty( $menu_locations ) && in_array( $_nav_menu->term_id, $menu_locations, true ) ) {
$locations_assigned_to_this_menu = array(); $locations_assigned_to_this_menu = array();
foreach ( array_keys( $menu_locations, $_nav_menu->term_id ) as $menu_location_key ) {
foreach ( array_keys( $menu_locations, $_nav_menu->term_id, true ) as $menu_location_key ) {
if ( isset( $locations[ $menu_location_key ] ) ) { if ( isset( $locations[ $menu_location_key ] ) ) {
$locations_assigned_to_this_menu[] = $locations[ $menu_location_key ]; $locations_assigned_to_this_menu[] = $locations[ $menu_location_key ];
} }
@ -815,7 +824,9 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
* *
* @param int $locations Number of menu locations to list. Default 3. * @param int $locations Number of menu locations to list. Default 3.
*/ */
$assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) ); $locations_listed_per_menu = absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) );
$assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, $locations_listed_per_menu );
// Adds ellipses following the number of locations defined in $assigned_locations. // Adds ellipses following the number of locations defined in $assigned_locations.
if ( ! empty( $assigned_locations ) ) { if ( ! empty( $assigned_locations ) ) {
@ -956,9 +967,10 @@ require_once ABSPATH . 'wp-admin/admin-header.php';
<?php <?php
if ( ! isset( $auto_add ) ) { if ( ! isset( $auto_add ) ) {
$auto_add = get_option( 'nav_menu_options' ); $auto_add = get_option( 'nav_menu_options' );
if ( ! isset( $auto_add['auto_add'] ) ) { if ( ! isset( $auto_add['auto_add'] ) ) {
$auto_add = false; $auto_add = false;
} elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) ) { } elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'], true ) ) {
$auto_add = true; $auto_add = true;
} else { } else {
$auto_add = false; $auto_add = false;

View File

@ -72,8 +72,9 @@ if ( isset( $_REQUEST['action'] ) && 'update-site' == $_REQUEST['action'] ) {
$existing_details = get_site( $id ); $existing_details = get_site( $id );
$blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' ); $blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );
foreach ( $blog_data_checkboxes as $c ) { foreach ( $blog_data_checkboxes as $c ) {
if ( ! in_array( $existing_details->$c, array( 0, 1 ) ) ) { if ( ! in_array( (int) $existing_details->$c, array( 0, 1 ), true ) ) {
$blog_data[ $c ] = $existing_details->$c; $blog_data[ $c ] = $existing_details->$c;
} else { } else {
$blog_data[ $c ] = isset( $_POST['blog'][ $c ] ) ? 1 : 0; $blog_data[ $c ] = isset( $_POST['blog'][ $c ] ) ? 1 : 0;
@ -194,7 +195,7 @@ if ( ! empty( $messages ) ) {
<fieldset> <fieldset>
<legend class="screen-reader-text"><?php _e( 'Set site attributes' ); ?></legend> <legend class="screen-reader-text"><?php _e( 'Set site attributes' ); ?></legend>
<?php foreach ( $attribute_fields as $field_key => $field_label ) : ?> <?php foreach ( $attribute_fields as $field_key => $field_label ) : ?>
<label><input type="checkbox" name="blog[<?php echo $field_key; ?>]" value="1" <?php checked( (bool) $details->$field_key, true ); ?> <?php disabled( ! in_array( $details->$field_key, array( 0, 1 ) ) ); ?> /> <label><input type="checkbox" name="blog[<?php echo $field_key; ?>]" value="1" <?php checked( (bool) $details->$field_key, true ); ?> <?php disabled( ! in_array( (int) $details->$field_key, array( 0, 1 ), true ) ); ?> />
<?php echo $field_label; ?></label><br/> <?php echo $field_label; ?></label><br/>
<?php endforeach; ?> <?php endforeach; ?>
<fieldset> <fieldset>

View File

@ -237,7 +237,7 @@ switch ( $wp_list_table->current_action() ) {
$all_userids = $userids; $all_userids = $userids;
if ( in_array( $current_user->ID, $userids ) ) { if ( in_array( $current_user->ID, $userids, true ) ) {
$userids = array_diff( $userids, array( $current_user->ID ) ); $userids = array_diff( $userids, array( $current_user->ID ) );
} }

View File

@ -1041,7 +1041,7 @@ class WP_Http {
// POST requests should not POST to a redirected location. // POST requests should not POST to a redirected location.
if ( 'POST' == $args['method'] ) { if ( 'POST' == $args['method'] ) {
if ( in_array( $response['response']['code'], array( 302, 303 ) ) ) { if ( in_array( $response['response']['code'], array( 302, 303 ), true ) ) {
$args['method'] = 'GET'; $args['method'] = 'GET';
} }
} }

View File

@ -122,12 +122,14 @@ class Walker_Page extends Walker {
if ( ! empty( $current_page ) ) { if ( ! empty( $current_page ) ) {
$_current_page = get_post( $current_page ); $_current_page = get_post( $current_page );
if ( $_current_page && in_array( $page->ID, $_current_page->ancestors ) ) {
if ( $_current_page && in_array( $page->ID, $_current_page->ancestors, true ) ) {
$css_class[] = 'current_page_ancestor'; $css_class[] = 'current_page_ancestor';
} }
if ( $page->ID == $current_page ) { if ( $page->ID == $current_page ) {
$css_class[] = 'current_page_item'; $css_class[] = 'current_page_item';
} elseif ( $_current_page && $page->ID == $_current_page->post_parent ) { } elseif ( $_current_page && $page->ID === $_current_page->post_parent ) {
$css_class[] = 'current_page_parent'; $css_class[] = 'current_page_parent';
} }
} elseif ( get_option( 'page_for_posts' ) == $page->ID ) { } elseif ( get_option( 'page_for_posts' ) == $page->ID ) {

View File

@ -192,7 +192,7 @@ class WP_Http_Cookie {
} }
// Port - supports "port-lists" in the format: "80,8000,8080". // Port - supports "port-lists" in the format: "80,8000,8080".
if ( ! empty( $port ) && ! in_array( $url['port'], explode( ',', $port ) ) ) { if ( ! empty( $port ) && ! in_array( $url['port'], array_map( 'intval', explode( ',', $port ) ), true ) ) {
return false; return false;
} }

View File

@ -238,7 +238,7 @@ class WP_Http_Curl {
curl_close( $handle ); curl_close( $handle );
return new WP_Error( 'http_request_failed', $curl_error ); return new WP_Error( 'http_request_failed', $curl_error );
} }
if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ) ) ) { if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ), true ) ) {
curl_close( $handle ); curl_close( $handle );
return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) ); return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) );
} }
@ -286,7 +286,7 @@ class WP_Http_Curl {
return new WP_Error( 'http_request_failed', $curl_error ); return new WP_Error( 'http_request_failed', $curl_error );
} }
} }
if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ) ) ) { if ( in_array( curl_getinfo( $handle, CURLINFO_HTTP_CODE ), array( 301, 302 ), true ) ) {
curl_close( $handle ); curl_close( $handle );
return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) ); return new WP_Error( 'http_request_failed', __( 'Too many redirects.' ) );
} }

View File

@ -3137,7 +3137,7 @@ class WP_Query {
$sticky_offset = 0; $sticky_offset = 0;
// Loop over posts and relocate stickies to the front. // Loop over posts and relocate stickies to the front.
for ( $i = 0; $i < $num_posts; $i++ ) { for ( $i = 0; $i < $num_posts; $i++ ) {
if ( in_array( $this->posts[ $i ]->ID, $sticky_posts ) ) { if ( in_array( $this->posts[ $i ]->ID, $sticky_posts, true ) ) {
$sticky_post = $this->posts[ $i ]; $sticky_post = $this->posts[ $i ];
// Remove sticky from current position. // Remove sticky from current position.
array_splice( $this->posts, $i, 1 ); array_splice( $this->posts, $i, 1 );
@ -3146,7 +3146,7 @@ class WP_Query {
// Increment the sticky offset. The next sticky will be placed at this offset. // Increment the sticky offset. The next sticky will be placed at this offset.
$sticky_offset++; $sticky_offset++;
// Remove post from sticky posts array. // Remove post from sticky posts array.
$offset = array_search( $sticky_post->ID, $sticky_posts ); $offset = array_search( $sticky_post->ID, $sticky_posts, true );
unset( $sticky_posts[ $offset ] ); unset( $sticky_posts[ $offset ] );
} }
} }

View File

@ -276,7 +276,7 @@ final class WP_Theme implements ArrayAccess {
$this->headers = get_file_data( $this->theme_root . '/' . $theme_file, self::$file_headers, 'theme' ); $this->headers = get_file_data( $this->theme_root . '/' . $theme_file, self::$file_headers, 'theme' );
// Default themes always trump their pretenders. // Default themes always trump their pretenders.
// Properly identify default themes that are inside a directory within wp-content/themes. // Properly identify default themes that are inside a directory within wp-content/themes.
$default_theme_slug = array_search( $this->headers['Name'], self::$default_themes ); $default_theme_slug = array_search( $this->headers['Name'], self::$default_themes, true );
if ( $default_theme_slug ) { if ( $default_theme_slug ) {
if ( basename( $this->stylesheet ) != $default_theme_slug ) { if ( basename( $this->stylesheet ) != $default_theme_slug ) {
$this->headers['Name'] .= '/' . $this->stylesheet; $this->headers['Name'] .= '/' . $this->stylesheet;

View File

@ -179,7 +179,7 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
$value['auto_add'] = false; $value['auto_add'] = false;
if ( isset( $nav_menu_options['auto_add'] ) && is_array( $nav_menu_options['auto_add'] ) ) { if ( isset( $nav_menu_options['auto_add'] ) && is_array( $nav_menu_options['auto_add'] ) ) {
$value['auto_add'] = in_array( $term->term_id, $nav_menu_options['auto_add'] ); $value['auto_add'] = in_array( $term->term_id, $nav_menu_options['auto_add'], true );
} }
} }
} }
@ -188,6 +188,7 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
$value = $this->default; $value = $this->default;
} }
} }
return $value; return $value;
} }
@ -602,7 +603,8 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
$nav_menu_options['auto_add'] = array(); $nav_menu_options['auto_add'] = array();
} }
$i = array_search( $menu_id, $nav_menu_options['auto_add'] ); $i = array_search( $menu_id, $nav_menu_options['auto_add'], true );
if ( $auto_add && false === $i ) { if ( $auto_add && false === $i ) {
array_push( $nav_menu_options['auto_add'], $this->term_id ); array_push( $nav_menu_options['auto_add'], $this->term_id );
} elseif ( ! $auto_add && false !== $i ) { } elseif ( ! $auto_add && false !== $i ) {

View File

@ -2180,9 +2180,10 @@ function get_calendar( $initial = true, $echo = true ) {
AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'", AND post_date <= '{$thisyear}-{$thismonth}-{$last_day} 23:59:59'",
ARRAY_N ARRAY_N
); );
if ( $dayswithposts ) { if ( $dayswithposts ) {
foreach ( (array) $dayswithposts as $daywith ) { foreach ( (array) $dayswithposts as $daywith ) {
$daywithpost[] = $daywith[0]; $daywithpost[] = (int) $daywith[0];
} }
} }
@ -2209,7 +2210,7 @@ function get_calendar( $initial = true, $echo = true ) {
$calendar_output .= '<td>'; $calendar_output .= '<td>';
} }
if ( in_array( $day, $daywithpost ) ) { if ( in_array( $day, $daywithpost, true ) ) {
// Any posts today? // Any posts today?
$date_format = gmdate( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) ); $date_format = gmdate( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
/* translators: Post calendar label. %s: Date. */ /* translators: Post calendar label. %s: Date. */
@ -2223,6 +2224,7 @@ function get_calendar( $initial = true, $echo = true ) {
} else { } else {
$calendar_output .= $day; $calendar_output .= $day;
} }
$calendar_output .= '</td>'; $calendar_output .= '</td>';
if ( 6 == calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins ) ) { if ( 6 == calendar_week_mod( gmdate( 'w', mktime( 0, 0, 0, $thismonth, $day, $thisyear ) ) - $week_begins ) ) {
@ -2234,6 +2236,7 @@ function get_calendar( $initial = true, $echo = true ) {
if ( 0 != $pad && 7 != $pad ) { if ( 0 != $pad && 7 != $pad ) {
$calendar_output .= "\n\t\t" . '<td class="pad" colspan="' . esc_attr( $pad ) . '">&nbsp;</td>'; $calendar_output .= "\n\t\t" . '<td class="pad" colspan="' . esc_attr( $pad ) . '">&nbsp;</td>';
} }
$calendar_output .= "\n\t</tr>\n\t</tbody>"; $calendar_output .= "\n\t</tr>\n\t</tbody>";
$calendar_output .= "\n\t</table>"; $calendar_output .= "\n\t</table>";

View File

@ -3687,13 +3687,15 @@ function get_dashboard_url( $user_id = 0, $path = '', $scheme = 'admin' ) {
$user_id = $user_id ? (int) $user_id : get_current_user_id(); $user_id = $user_id ? (int) $user_id : get_current_user_id();
$blogs = get_blogs_of_user( $user_id ); $blogs = get_blogs_of_user( $user_id );
if ( is_multisite() && ! user_can( $user_id, 'manage_network' ) && empty( $blogs ) ) { if ( is_multisite() && ! user_can( $user_id, 'manage_network' ) && empty( $blogs ) ) {
$url = user_admin_url( $path, $scheme ); $url = user_admin_url( $path, $scheme );
} elseif ( ! is_multisite() ) { } elseif ( ! is_multisite() ) {
$url = admin_url( $path, $scheme ); $url = admin_url( $path, $scheme );
} else { } else {
$current_blog = get_current_blog_id(); $current_blog = get_current_blog_id();
if ( $current_blog && ( user_can( $user_id, 'manage_network' ) || in_array( $current_blog, array_keys( $blogs ) ) ) ) {
if ( $current_blog && ( user_can( $user_id, 'manage_network' ) || in_array( $current_blog, array_keys( $blogs ), true ) ) ) {
$url = admin_url( $path, $scheme ); $url = admin_url( $path, $scheme );
} else { } else {
$active = get_active_blog_for_user( $user_id ); $active = get_active_blog_for_user( $user_id );

View File

@ -392,7 +392,9 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
} }
// If the menu item corresponds to a taxonomy term for the currently queried non-hierarchical post object. // If the menu item corresponds to a taxonomy term for the currently queried non-hierarchical post object.
if ( $wp_query->is_singular && 'taxonomy' == $menu_item->type && in_array( $menu_item->object_id, $possible_object_parents ) ) { if ( $wp_query->is_singular && 'taxonomy' == $menu_item->type
&& in_array( (int) $menu_item->object_id, $possible_object_parents, true )
) {
$active_parent_object_ids[] = (int) $menu_item->object_id; $active_parent_object_ids[] = (int) $menu_item->object_id;
$active_parent_item_ids[] = (int) $menu_item->db_id; $active_parent_item_ids[] = (int) $menu_item->db_id;
$active_object = $queried_object->post_type; $active_object = $queried_object->post_type;
@ -404,7 +406,8 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
( ! empty( $home_page_id ) && 'post_type' == $menu_item->type && $wp_query->is_home && $home_page_id == $menu_item->object_id ) ( ! empty( $home_page_id ) && 'post_type' == $menu_item->type && $wp_query->is_home && $home_page_id == $menu_item->object_id )
|| ( 'post_type' == $menu_item->type && $wp_query->is_singular ) || ( 'post_type' == $menu_item->type && $wp_query->is_singular )
|| ( 'taxonomy' == $menu_item->type || ( 'taxonomy' == $menu_item->type
&& ( $wp_query->is_category || $wp_query->is_tag || $wp_query->is_tax ) && $queried_object->taxonomy == $menu_item->object ) && ( $wp_query->is_category || $wp_query->is_tag || $wp_query->is_tax )
&& $queried_object->taxonomy == $menu_item->object )
) )
) { ) {
$classes[] = 'current-menu-item'; $classes[] = 'current-menu-item';
@ -525,7 +528,7 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
'post_type' == $parent_item->type 'post_type' == $parent_item->type
&& ! empty( $queried_object->post_type ) && ! empty( $queried_object->post_type )
&& is_post_type_hierarchical( $queried_object->post_type ) && is_post_type_hierarchical( $queried_object->post_type )
&& in_array( $parent_item->object_id, $queried_object->ancestors ) && in_array( (int) $parent_item->object_id, $queried_object->ancestors, true )
&& $parent_item->object != $queried_object->ID && $parent_item->object != $queried_object->ID
) || ) ||
@ -533,7 +536,7 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
( (
'taxonomy' == $parent_item->type 'taxonomy' == $parent_item->type
&& isset( $possible_taxonomy_ancestors[ $parent_item->object ] ) && isset( $possible_taxonomy_ancestors[ $parent_item->object ] )
&& in_array( $parent_item->object_id, $possible_taxonomy_ancestors[ $parent_item->object ] ) && in_array( (int) $parent_item->object_id, $possible_taxonomy_ancestors[ $parent_item->object ], true )
&& ( && (
! isset( $queried_object->term_id ) || ! isset( $queried_object->term_id ) ||
$parent_item->object_id != $queried_object->term_id $parent_item->object_id != $queried_object->term_id

View File

@ -2284,7 +2284,12 @@ function is_sticky( $post_id = 0 ) {
$stickies = get_option( 'sticky_posts' ); $stickies = get_option( 'sticky_posts' );
$is_sticky = is_array( $stickies ) && in_array( $post_id, $stickies ); if ( is_array( $stickies ) ) {
$stickies = array_map( 'intval', $stickies );
$is_sticky = in_array( $post_id, $stickies, true );
} else {
$is_sticky = false;
}
/** /**
* Filters whether a post is sticky. * Filters whether a post is sticky.
@ -2511,13 +2516,16 @@ function sanitize_post_field( $field, $value, $post_id, $context = 'display' ) {
* @param int $post_id Post ID. * @param int $post_id Post ID.
*/ */
function stick_post( $post_id ) { function stick_post( $post_id ) {
$post_id = (int) $post_id;
$stickies = get_option( 'sticky_posts' ); $stickies = get_option( 'sticky_posts' );
if ( ! is_array( $stickies ) ) { if ( ! is_array( $stickies ) ) {
$stickies = array( $post_id ); $stickies = array();
} }
if ( ! in_array( $post_id, $stickies ) ) { $stickies = array_map( 'intval', $stickies );
if ( ! in_array( $post_id, $stickies, true ) ) {
$stickies[] = $post_id; $stickies[] = $post_id;
} }
@ -2545,17 +2553,20 @@ function stick_post( $post_id ) {
* @param int $post_id Post ID. * @param int $post_id Post ID.
*/ */
function unstick_post( $post_id ) { function unstick_post( $post_id ) {
$post_id = (int) $post_id;
$stickies = get_option( 'sticky_posts' ); $stickies = get_option( 'sticky_posts' );
if ( ! is_array( $stickies ) ) { if ( ! is_array( $stickies ) ) {
return; return;
} }
if ( ! in_array( $post_id, $stickies ) ) { $stickies = array_map( 'intval', $stickies );
if ( ! in_array( $post_id, $stickies, true ) ) {
return; return;
} }
$offset = array_search( $post_id, $stickies ); $offset = array_search( $post_id, $stickies, true );
if ( false === $offset ) { if ( false === $offset ) {
return; return;
} }
@ -2841,8 +2852,10 @@ function wp_match_mime_types( $wildcard_mime_types, $real_mime_types ) {
foreach ( (array) $wildcard_mime_types as $type ) { foreach ( (array) $wildcard_mime_types as $type ) {
$mimes = array_map( 'trim', explode( ',', $type ) ); $mimes = array_map( 'trim', explode( ',', $type ) );
foreach ( $mimes as $mime ) { foreach ( $mimes as $mime ) {
$regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $mime ) ) ); $regex = str_replace( '__wildcard__', $wild, preg_quote( str_replace( '*', '__wildcard__', $mime ) ) );
$patternses[][ $type ] = "^$regex$"; $patternses[][ $type ] = "^$regex$";
if ( false === strpos( $mime, '/' ) ) { if ( false === strpos( $mime, '/' ) ) {
$patternses[][ $type ] = "^$regex/"; $patternses[][ $type ] = "^$regex/";
$patternses[][ $type ] = $regex; $patternses[][ $type ] = $regex;
@ -2854,12 +2867,15 @@ function wp_match_mime_types( $wildcard_mime_types, $real_mime_types ) {
foreach ( $patternses as $patterns ) { foreach ( $patternses as $patterns ) {
foreach ( $patterns as $type => $pattern ) { foreach ( $patterns as $type => $pattern ) {
foreach ( (array) $real_mime_types as $real ) { foreach ( (array) $real_mime_types as $real ) {
if ( preg_match( "#$pattern#", $real ) && ( empty( $matches[ $type ] ) || false === array_search( $real, $matches[ $type ] ) ) ) { if ( preg_match( "#$pattern#", $real )
&& ( empty( $matches[ $type ] ) || false === array_search( $real, $matches[ $type ], true ) )
) {
$matches[ $type ][] = $real; $matches[ $type ][] = $real;
} }
} }
} }
} }
return $matches; return $matches;
} }
@ -2914,9 +2930,11 @@ function wp_post_mime_type_where( $post_mime_types, $table_alias = '' ) {
$wheres[] = empty( $table_alias ) ? "post_mime_type = '$mime_pattern'" : "$table_alias.post_mime_type = '$mime_pattern'"; $wheres[] = empty( $table_alias ) ? "post_mime_type = '$mime_pattern'" : "$table_alias.post_mime_type = '$mime_pattern'";
} }
} }
if ( ! empty( $wheres ) ) { if ( ! empty( $wheres ) ) {
$where = ' AND (' . join( ' OR ', $wheres ) . ') '; $where = ' AND (' . join( ' OR ', $wheres ) . ') ';
} }
return $where; return $where;
} }
@ -4436,15 +4454,16 @@ function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_p
$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1"; $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1";
$post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID ) ); $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID ) );
$post = get_post( $post_ID );
// Prevent new post slugs that could result in URLs that conflict with date archives. // Prevent new post slugs that could result in URLs that conflict with date archives.
$post = get_post( $post_ID );
$conflicts_with_date_archive = false; $conflicts_with_date_archive = false;
if ( 'post' === $post_type && ( ! $post || $post->post_name !== $slug ) && preg_match( '/^[0-9]+$/', $slug ) ) { if ( 'post' === $post_type && ( ! $post || $post->post_name !== $slug ) && preg_match( '/^[0-9]+$/', $slug ) ) {
$slug_num = intval( $slug ); $slug_num = intval( $slug );
if ( $slug_num ) { if ( $slug_num ) {
$permastructs = array_values( array_filter( explode( '/', get_option( 'permalink_structure' ) ) ) ); $permastructs = array_values( array_filter( explode( '/', get_option( 'permalink_structure' ) ) ) );
$postname_index = array_search( '%postname%', $permastructs ); $postname_index = array_search( '%postname%', $permastructs, true );
/* /*
* Potential date clashes are as follows: * Potential date clashes are as follows:
@ -5500,7 +5519,7 @@ function get_pages( $args = array() ) {
$num_pages = count( $pages ); $num_pages = count( $pages );
for ( $i = 0; $i < $num_pages; $i++ ) { for ( $i = 0; $i < $num_pages; $i++ ) {
if ( in_array( $pages[ $i ]->ID, $exclude ) ) { if ( in_array( $pages[ $i ]->ID, $exclude, true ) ) {
unset( $pages[ $i ] ); unset( $pages[ $i ] );
} }
} }
@ -5811,7 +5830,8 @@ function wp_delete_attachment_files( $post_id, $meta, $backup_sizes, $file ) {
*/ */
function wp_get_attachment_metadata( $attachment_id = 0, $unfiltered = false ) { function wp_get_attachment_metadata( $attachment_id = 0, $unfiltered = false ) {
$attachment_id = (int) $attachment_id; $attachment_id = (int) $attachment_id;
$post = get_post( $attachment_id );
$post = get_post( $attachment_id );
if ( ! $post ) { if ( ! $post ) {
return false; return false;
} }
@ -5845,7 +5865,8 @@ function wp_get_attachment_metadata( $attachment_id = 0, $unfiltered = false ) {
*/ */
function wp_update_attachment_metadata( $attachment_id, $data ) { function wp_update_attachment_metadata( $attachment_id, $data ) {
$attachment_id = (int) $attachment_id; $attachment_id = (int) $attachment_id;
$post = get_post( $attachment_id );
$post = get_post( $attachment_id );
if ( ! $post ) { if ( ! $post ) {
return false; return false;
} }
@ -5878,7 +5899,8 @@ function wp_update_attachment_metadata( $attachment_id, $data ) {
*/ */
function wp_get_attachment_url( $attachment_id = 0 ) { function wp_get_attachment_url( $attachment_id = 0 ) {
$attachment_id = (int) $attachment_id; $attachment_id = (int) $attachment_id;
$post = get_post( $attachment_id );
$post = get_post( $attachment_id );
if ( ! $post ) { if ( ! $post ) {
return false; return false;
} }

View File

@ -596,7 +596,7 @@ function url_to_postid( $url ) {
parse_str( $query, $query_vars ); parse_str( $query, $query_vars );
$query = array(); $query = array();
foreach ( (array) $query_vars as $key => $value ) { foreach ( (array) $query_vars as $key => $value ) {
if ( in_array( $key, $wp->public_query_vars, true ) ) { if ( in_array( (string) $key, $wp->public_query_vars, true ) ) {
$query[ $key ] = $value; $query[ $key ] = $value;
if ( isset( $post_type_query_vars[ $key ] ) ) { if ( isset( $post_type_query_vars[ $key ] ) ) {
$query['post_type'] = $post_type_query_vars[ $key ]; $query['post_type'] = $post_type_query_vars[ $key ];

View File

@ -2468,16 +2468,20 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
} }
$term_info = term_exists( $term, $taxonomy ); $term_info = term_exists( $term, $taxonomy );
if ( ! $term_info ) { if ( ! $term_info ) {
// Skip if a non-existent term ID is passed. // Skip if a non-existent term ID is passed.
if ( is_int( $term ) ) { if ( is_int( $term ) ) {
continue; continue;
} }
$term_info = wp_insert_term( $term, $taxonomy ); $term_info = wp_insert_term( $term, $taxonomy );
} }
if ( is_wp_error( $term_info ) ) { if ( is_wp_error( $term_info ) ) {
return $term_info; return $term_info;
} }
$term_ids[] = $term_info['term_id']; $term_ids[] = $term_info['term_id'];
$tt_id = $term_info['term_taxonomy_id']; $tt_id = $term_info['term_taxonomy_id'];
$tt_ids[] = $tt_id; $tt_ids[] = $tt_id;
@ -2497,6 +2501,7 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
* @param string $taxonomy Taxonomy slug. * @param string $taxonomy Taxonomy slug.
*/ */
do_action( 'add_term_relationship', $object_id, $tt_id, $taxonomy ); do_action( 'add_term_relationship', $object_id, $tt_id, $taxonomy );
$wpdb->insert( $wpdb->insert(
$wpdb->term_relationships, $wpdb->term_relationships,
array( array(
@ -2516,6 +2521,7 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
* @param string $taxonomy Taxonomy slug. * @param string $taxonomy Taxonomy slug.
*/ */
do_action( 'added_term_relationship', $object_id, $tt_id, $taxonomy ); do_action( 'added_term_relationship', $object_id, $tt_id, $taxonomy );
$new_tt_ids[] = $tt_id; $new_tt_ids[] = $tt_id;
} }
@ -2539,9 +2545,11 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
} }
$t = get_taxonomy( $taxonomy ); $t = get_taxonomy( $taxonomy );
if ( ! $append && isset( $t->sort ) && $t->sort ) { if ( ! $append && isset( $t->sort ) && $t->sort ) {
$values = array(); $values = array();
$term_order = 0; $term_order = 0;
$final_tt_ids = wp_get_object_terms( $final_tt_ids = wp_get_object_terms(
$object_id, $object_id,
$taxonomy, $taxonomy,
@ -2550,11 +2558,13 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
'update_term_meta_cache' => false, 'update_term_meta_cache' => false,
) )
); );
foreach ( $tt_ids as $tt_id ) { foreach ( $tt_ids as $tt_id ) {
if ( in_array( $tt_id, $final_tt_ids ) ) { if ( in_array( (int) $tt_id, $final_tt_ids, true ) ) {
$values[] = $wpdb->prepare( '(%d, %d, %d)', $object_id, $tt_id, ++$term_order ); $values[] = $wpdb->prepare( '(%d, %d, %d)', $object_id, $tt_id, ++$term_order );
} }
} }
if ( $values ) { if ( $values ) {
if ( false === $wpdb->query( "INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join( ',', $values ) . ' ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)' ) ) { if ( false === $wpdb->query( "INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join( ',', $values ) . ' ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)' ) ) {
return new WP_Error( 'db_insert_error', __( 'Could not insert term relationship into the database.' ), $wpdb->last_error ); return new WP_Error( 'db_insert_error', __( 'Could not insert term relationship into the database.' ), $wpdb->last_error );
@ -2578,6 +2588,7 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
* @param array $old_tt_ids Old array of term taxonomy IDs. * @param array $old_tt_ids Old array of term taxonomy IDs.
*/ */
do_action( 'set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids ); do_action( 'set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids );
return $tt_ids; return $tt_ids;
} }
@ -3616,8 +3627,10 @@ function _pad_term_counts( &$terms, $taxonomy ) {
$tax_obj = get_taxonomy( $taxonomy ); $tax_obj = get_taxonomy( $taxonomy );
$object_types = esc_sql( $tax_obj->object_type ); $object_types = esc_sql( $tax_obj->object_type );
$results = $wpdb->get_results( "SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships INNER JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (" . implode( ',', array_keys( $term_ids ) ) . ") AND post_type IN ('" . implode( "', '", $object_types ) . "') AND post_status = 'publish'" ); $results = $wpdb->get_results( "SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships INNER JOIN $wpdb->posts ON object_id = ID WHERE term_taxonomy_id IN (" . implode( ',', array_keys( $term_ids ) ) . ") AND post_type IN ('" . implode( "', '", $object_types ) . "') AND post_status = 'publish'" );
foreach ( $results as $row ) { foreach ( $results as $row ) {
$id = $term_ids[ $row->term_taxonomy_id ]; $id = $term_ids[ $row->term_taxonomy_id ];
$term_items[ $id ][ $row->object_id ] = isset( $term_items[ $id ][ $row->object_id ] ) ? ++$term_items[ $id ][ $row->object_id ] : 1; $term_items[ $id ][ $row->object_id ] = isset( $term_items[ $id ][ $row->object_id ] ) ? ++$term_items[ $id ][ $row->object_id ] : 1;
} }
@ -3627,14 +3640,16 @@ function _pad_term_counts( &$terms, $taxonomy ) {
$ancestors = array(); $ancestors = array();
while ( ! empty( $terms_by_id[ $child ] ) && $parent = $terms_by_id[ $child ]->parent ) { while ( ! empty( $terms_by_id[ $child ] ) && $parent = $terms_by_id[ $child ]->parent ) {
$ancestors[] = $child; $ancestors[] = $child;
if ( ! empty( $term_items[ $term_id ] ) ) { if ( ! empty( $term_items[ $term_id ] ) ) {
foreach ( $term_items[ $term_id ] as $item_id => $touches ) { foreach ( $term_items[ $term_id ] as $item_id => $touches ) {
$term_items[ $parent ][ $item_id ] = isset( $term_items[ $parent ][ $item_id ] ) ? ++$term_items[ $parent ][ $item_id ] : 1; $term_items[ $parent ][ $item_id ] = isset( $term_items[ $parent ][ $item_id ] ) ? ++$term_items[ $parent ][ $item_id ] : 1;
} }
} }
$child = $parent; $child = $parent;
if ( in_array( $parent, $ancestors ) ) { if ( in_array( $parent, $ancestors, true ) ) {
break; break;
} }
} }
@ -4522,7 +4537,7 @@ function get_ancestors( $object_id = 0, $object_type = '', $resource_type = '' )
if ( 'taxonomy' === $resource_type ) { if ( 'taxonomy' === $resource_type ) {
$term = get_term( $object_id, $object_type ); $term = get_term( $object_id, $object_type );
while ( ! is_wp_error( $term ) && ! empty( $term->parent ) && ! in_array( $term->parent, $ancestors ) ) { while ( ! is_wp_error( $term ) && ! empty( $term->parent ) && ! in_array( $term->parent, $ancestors, true ) ) {
$ancestors[] = (int) $term->parent; $ancestors[] = (int) $term->parent;
$term = get_term( $term->parent, $object_type ); $term = get_term( $term->parent, $object_type );
} }

View File

@ -13,7 +13,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '5.5-alpha-47556'; $wp_version = '5.5-alpha-47557';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.