Fix syntax for single- and multi-line comments in wp-admin-directory files.

See #28931.

Built from https://develop.svn.wordpress.org/trunk@29206


git-svn-id: http://core.svn.wordpress.org/trunk@28990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Drew Jaynes 2014-07-17 09:14:16 +00:00
parent e731028303
commit 097dc8ee15
61 changed files with 570 additions and 369 deletions

View File

@ -151,7 +151,8 @@ if ( isset($plugin_page) ) {
$the_parent = $pagenow; $the_parent = $pagenow;
if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) { if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
$page_hook = get_plugin_page_hook($plugin_page, $plugin_page); $page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
// backwards compatibility for plugins using add_management_page
// Backwards compatibility for plugins using add_management_page().
if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) { if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) {
// There could be plugin specific params on the URL, so we need the whole query string // There could be plugin specific params on the URL, so we need the whole query string
if ( !empty($_SERVER[ 'QUERY_STRING' ]) ) if ( !empty($_SERVER[ 'QUERY_STRING' ]) )

View File

@ -94,10 +94,10 @@ if ( is_wp_error($id) ) {
} }
if ( $_REQUEST['short'] ) { if ( $_REQUEST['short'] ) {
// short form response - attachment ID only // Short form response - attachment ID only.
echo $id; echo $id;
} else { } else {
// long form response - big chunk o html // Long form response - big chunk o html.
$type = $_REQUEST['type']; $type = $_REQUEST['type'];
/** /**

View File

@ -256,7 +256,8 @@ class Custom_Background {
if ( get_background_image() ) { if ( get_background_image() ) {
$background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) ); $background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) );
// background-image URL must be single quote, see below
// Background-image URL must be single quote, see below.
$background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');' $background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
. ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';' . ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';'
. ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ); . ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );

View File

@ -934,7 +934,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
$url = $object['guid']; $url = $object['guid'];
$this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) ); $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
// cleanup // Cleanup.
$medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original ); $medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original );
if ( file_exists( $medium ) ) { if ( file_exists( $medium ) ) {
/** /**

View File

@ -189,12 +189,14 @@ do_action( 'customize_controls_print_scripts' );
*/ */
do_action( 'customize_controls_print_footer_scripts' ); do_action( 'customize_controls_print_footer_scripts' );
// If the frontend and the admin are served from the same domain, load the /*
// preview over ssl if the customizer is being loaded over ssl. This avoids * If the frontend and the admin are served from the same domain, load the
// insecure content warnings. This is not attempted if the admin and frontend * preview over ssl if the customizer is being loaded over ssl. This avoids
// are on different domains to avoid the case where the frontend doesn't have * insecure content warnings. This is not attempted if the admin and frontend
// ssl certs. Domain mapping plugins can allow other urls in these conditions * are on different domains to avoid the case where the frontend doesn't have
// using the customize_allowed_urls filter. * ssl certs. Domain mapping plugins can allow other urls in these conditions
* using the customize_allowed_urls filter.
*/
$allowed_urls = array( home_url('/') ); $allowed_urls = array( home_url('/') );
$admin_origin = parse_url( admin_url() ); $admin_origin = parse_url( admin_url() );

View File

@ -7,9 +7,11 @@
*/ */
if ( ! defined('WP_ADMIN') ) { if ( ! defined('WP_ADMIN') ) {
// This file is being included from a file other than wp-admin/admin.php, so /*
// some setup was skipped. Make sure the admin message catalog is loaded since * This file is being included from a file other than wp-admin/admin.php, so
// load_default_textdomain() will not have done so in this context. * some setup was skipped. Make sure the admin message catalog is loaded since
* load_default_textdomain() will not have done so in this context.
*/
load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' ); load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );
} }

View File

@ -21,7 +21,7 @@
function wp_ajax_nopriv_heartbeat() { function wp_ajax_nopriv_heartbeat() {
$response = array(); $response = array();
// screen_id is the same as $current_screen->id and the JS global 'pagenow' // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
if ( ! empty($_POST['screen_id']) ) if ( ! empty($_POST['screen_id']) )
$screen_id = sanitize_key($_POST['screen_id']); $screen_id = sanitize_key($_POST['screen_id']);
else else
@ -64,7 +64,7 @@ function wp_ajax_nopriv_heartbeat() {
*/ */
do_action( 'heartbeat_nopriv_tick', $response, $screen_id ); do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
// send the current time according to the server // Send the current time according to the server.
$response['server_time'] = time(); $response['server_time'] = time();
wp_send_json($response); wp_send_json($response);
@ -362,16 +362,19 @@ function _wp_ajax_delete_comment_response( $comment_id, $delta = -1 ) {
$comment_count = wp_count_comments($post_id); $comment_count = wp_count_comments($post_id);
if ( isset( $comment_count->$status ) ) // We're looking for a known type of comment count // We're looking for a known type of comment count.
if ( isset( $comment_count->$status ) )
$total = $comment_count->$status; $total = $comment_count->$status;
// else use the decremented value from above // Else use the decremented value from above.
} }
$time = time(); // The time since the last comment count // The time since the last comment count.
$time = time();
$x = new WP_Ajax_Response( array( $x = new WP_Ajax_Response( array(
'what' => 'comment', 'what' => 'comment',
'id' => $comment_id, // here for completeness - not used // Here for completeness - not used.
'id' => $comment_id,
'supplemental' => array( 'supplemental' => array(
'total_items_i18n' => sprintf( _n( '1 item', '%s items', $total ), number_format_i18n( $total ) ), 'total_items_i18n' => sprintf( _n( '1 item', '%s items', $total ), number_format_i18n( $total ) ),
'total_pages' => ceil( $total / $per_page ), 'total_pages' => ceil( $total / $per_page ),
@ -955,7 +958,7 @@ function wp_ajax_replyto_comment( $action ) {
$comment_auto_approved = false; $comment_auto_approved = false;
$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID'); $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
// automatically approve parent comment // Automatically approve parent comment.
if ( !empty($_POST['approve_parent']) ) { if ( !empty($_POST['approve_parent']) ) {
$parent = get_comment( $comment_parent ); $parent = get_comment( $comment_parent );
@ -1512,18 +1515,20 @@ function wp_ajax_inline_save() {
$data = &$_POST; $data = &$_POST;
$post = get_post( $post_ID, ARRAY_A ); $post = get_post( $post_ID, ARRAY_A );
$post = wp_slash($post); //since it is from db
// Since it's coming from the database.
$post = wp_slash($post);
$data['content'] = $post['post_content']; $data['content'] = $post['post_content'];
$data['excerpt'] = $post['post_excerpt']; $data['excerpt'] = $post['post_excerpt'];
// rename // Rename.
$data['user_ID'] = get_current_user_id(); $data['user_ID'] = get_current_user_id();
if ( isset($data['post_parent']) ) if ( isset($data['post_parent']) )
$data['parent_id'] = $data['post_parent']; $data['parent_id'] = $data['post_parent'];
// status // Status.
if ( isset($data['keep_private']) && 'private' == $data['keep_private'] ) if ( isset($data['keep_private']) && 'private' == $data['keep_private'] )
$data['post_status'] = 'private'; $data['post_status'] = 'private';
else else
@ -1540,7 +1545,7 @@ function wp_ajax_inline_save() {
$data['post_name'] = wp_unique_post_slug( $data['post_name'], $post['ID'], $post['post_status'], $post['post_type'], $post['post_parent'] ); $data['post_name'] = wp_unique_post_slug( $data['post_name'], $post['ID'], $post['post_status'], $post['post_type'], $post['post_parent'] );
} }
// update the post // Update the post.
edit_post(); edit_post();
$wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) ); $wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
@ -1686,7 +1691,7 @@ function wp_ajax_widgets_order() {
unset( $_POST['savewidgets'], $_POST['action'] ); unset( $_POST['savewidgets'], $_POST['action'] );
// save widgets order for all sidebars // Save widgets order for all sidebars.
if ( is_array($_POST['sidebars']) ) { if ( is_array($_POST['sidebars']) ) {
$sidebars = array(); $sidebars = array();
foreach ( $_POST['sidebars'] as $key => $val ) { foreach ( $_POST['sidebars'] as $key => $val ) {
@ -1751,7 +1756,7 @@ function wp_ajax_save_widget() {
$sidebars = wp_get_sidebars_widgets(); $sidebars = wp_get_sidebars_widgets();
$sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array(); $sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array();
// delete // Delete.
if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) { if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
if ( !isset($wp_registered_widgets[$widget_id]) ) if ( !isset($wp_registered_widgets[$widget_id]) )
@ -2411,9 +2416,11 @@ function wp_ajax_send_link_to_editor() {
$title = wp_basename( $src ); $title = wp_basename( $src );
$post = get_post( isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0 ); $post = get_post( isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0 );
// ping WordPress for an embed
// Ping WordPress for an embed.
$check_embed = $wp_embed->run_shortcode( '[embed]'. $src .'[/embed]' ); $check_embed = $wp_embed->run_shortcode( '[embed]'. $src .'[/embed]' );
// fallback that WordPress creates when no oEmbed was found
// Fallback that WordPress creates when no oEmbed was found.
$fallback = $wp_embed->maybe_make_link( $src ); $fallback = $wp_embed->maybe_make_link( $src );
if ( $check_embed !== $fallback ) { if ( $check_embed !== $fallback ) {
@ -2456,7 +2463,7 @@ function wp_ajax_heartbeat() {
wp_send_json($response); wp_send_json($response);
} }
// screen_id is the same as $current_screen->id and the JS global 'pagenow' // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
if ( ! empty($_POST['screen_id']) ) if ( ! empty($_POST['screen_id']) )
$screen_id = sanitize_key($_POST['screen_id']); $screen_id = sanitize_key($_POST['screen_id']);
else else

View File

@ -424,7 +424,7 @@ class WP_Comments_List_Table extends WP_List_Table {
} }
if ( $user_can ) { if ( $user_can ) {
// preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash // Preorder it: Approve | Reply | Quick Edit | Edit | Spam | Trash.
$actions = array( $actions = array(
'approve' => '', 'unapprove' => '', 'approve' => '', 'unapprove' => '',
'reply' => '', 'reply' => '',
@ -434,7 +434,8 @@ class WP_Comments_List_Table extends WP_List_Table {
'trash' => '', 'untrash' => '', 'delete' => '' 'trash' => '', 'untrash' => '', 'delete' => ''
); );
if ( $comment_status && 'all' != $comment_status ) { // not looking at all comments // Not looking at all comments.
if ( $comment_status && 'all' != $comment_status ) {
if ( 'approved' == $the_comment_status ) if ( 'approved' == $the_comment_status )
$actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; $actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
else if ( 'unapproved' == $the_comment_status ) else if ( 'unapproved' == $the_comment_status )

View File

@ -308,16 +308,21 @@ class WP_Filesystem_Base {
if ( $index == $last_index ) if ( $index == $last_index )
continue; // We want this to be caught by the next code block. continue; // We want this to be caught by the next code block.
// Working from /home/ to /user/ to /wordpress/ see if that file exists within the current folder, /*
// If it's found, change into it and follow through looking for it. * Working from /home/ to /user/ to /wordpress/ see if that file exists within
// If it cant find WordPress down that route, it'll continue onto the next folder level, and see if that matches, and so on. * the current folder, If it's found, change into it and follow through looking
// If it reaches the end, and still cant find it, it'll return false for the entire function. * for it. If it cant find WordPress down that route, it'll continue onto the next
* folder level, and see if that matches, and so on. If it reaches the end, and still
* cant find it, it'll return false for the entire function.
*/
if ( isset($files[ $key ]) ){ if ( isset($files[ $key ]) ){
// Lets try that folder: // Lets try that folder:
$newdir = trailingslashit(path_join($base, $key)); $newdir = trailingslashit(path_join($base, $key));
if ( $this->verbose ) if ( $this->verbose )
printf( "\n" . __('Changing to %s') . "<br/>\n", $newdir ); printf( "\n" . __('Changing to %s') . "<br/>\n", $newdir );
// only search for the remaining path tokens in the directory, not the full path again
// Only search for the remaining path tokens in the directory, not the full path again.
$newfolder = implode( '/', array_slice( $folder_parts, $index + 1 ) ); $newfolder = implode( '/', array_slice( $folder_parts, $index + 1 ) );
if ( $ret = $this->search_for_folder( $newfolder, $newdir, $loop) ) if ( $ret = $this->search_for_folder( $newfolder, $newdir, $loop) )
return $ret; return $ret;

View File

@ -224,7 +224,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
if ( ! $overwrite && $this->exists($destination) ) if ( ! $overwrite && $this->exists($destination) )
return false; return false;
// try using rename first. if that fails (for example, source is read only) try copy // Try using rename first. if that fails (for example, source is read only) try copy.
if ( @rename($source, $destination) ) if ( @rename($source, $destination) )
return true; return true;
@ -305,7 +305,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base {
} }
public function mkdir($path, $chmod = false, $chown = false, $chgrp = false) { public function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
// safe mode fails with a trailing slash under certain PHP versions. // Safe mode fails with a trailing slash under certain PHP versions.
$path = untrailingslashit($path); $path = untrailingslashit($path);
if ( empty($path) ) if ( empty($path) )
return false; return false;

View File

@ -232,7 +232,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
public function exists( $file ) { public function exists( $file ) {
$list = $this->ftp->nlist( $file ); $list = $this->ftp->nlist( $file );
return !empty( $list ); //empty list = no file, so invert. return !empty( $list ); //empty list = no file, so invert.
// return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server // Return $this->ftp->is_exists($file); has issues with ABOR+426 responses on the ncFTPd server.
} }
public function is_file($file) { public function is_file($file) {

View File

@ -85,7 +85,8 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
$this->options['username'] = $opt['username']; $this->options['username'] = $opt['username'];
if ( empty ($opt['password']) ) { if ( empty ($opt['password']) ) {
if ( !$this->keys ) //password can be blank if we are using keys // Password can be blank if we are using keys.
if ( !$this->keys )
$this->errors->add('empty_password', __('SSH2 password is required')); $this->errors->add('empty_password', __('SSH2 password is required'));
} else { } else {
$this->options['password'] = $opt['password']; $this->options['password'] = $opt['password'];

View File

@ -41,7 +41,7 @@ class WP_Importer {
} }
} while ( count( $results ) == $limit ); } while ( count( $results ) == $limit );
// unset to save memory // Unset to save memory.
unset( $results, $r ); unset( $results, $r );
return $hashtable; return $hashtable;
@ -67,7 +67,7 @@ class WP_Importer {
if ( !empty( $result ) ) if ( !empty( $result ) )
$count = intval( $result[0]->cnt ); $count = intval( $result[0]->cnt );
// unset to save memory // Unset to save memory.
unset( $results ); unset( $results );
return $count; return $count;
@ -109,7 +109,7 @@ class WP_Importer {
} }
} while ( count( $results ) == $limit ); } while ( count( $results ) == $limit );
// unset to save memory // Unset to save memory.
unset( $results, $r ); unset( $results, $r );
return $hashtable; return $hashtable;

View File

@ -201,7 +201,7 @@ class WP_List_Table {
if ( !$args['total_pages'] && $args['per_page'] > 0 ) if ( !$args['total_pages'] && $args['per_page'] > 0 )
$args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] ); $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
// redirect if page number is invalid and headers are not already sent // Redirect if page number is invalid and headers are not already sent.
if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) { if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) ); wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
exit; exit;

View File

@ -38,8 +38,10 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
$s = trim($s, '*'); $s = trim($s, '*');
} }
// If the network is large and a search is not being performed, show only the latest blogs with no paging in order /*
// to avoid expensive count queries. * If the network is large and a search is not being performed, show only
* the latest blogs with no paging in order to avoid expensive count queries.
*/
if ( !$s && wp_is_large_network() ) { if ( !$s && wp_is_large_network() ) {
if ( !isset($_REQUEST['orderby']) ) if ( !isset($_REQUEST['orderby']) )
$_GET['orderby'] = $_REQUEST['orderby'] = ''; $_GET['orderby'] = $_REQUEST['orderby'] = '';

View File

@ -33,7 +33,8 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
} }
protected function get_table_classes() { protected function get_table_classes() {
return array( 'widefat', 'plugins' ); // todo: remove and add CSS for .themes // todo: remove and add CSS for .themes
return array( 'widefat', 'plugins' );
} }
public function ajax_user_can() { public function ajax_user_can() {
@ -268,7 +269,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
$allowed = $theme->is_allowed( 'network' ); $allowed = $theme->is_allowed( 'network' );
} }
// preorder // Pre-order.
$actions = array( $actions = array(
'enable' => '', 'enable' => '',
'disable' => '', 'disable' => '',

View File

@ -40,8 +40,11 @@ class WP_MS_Users_List_Table extends WP_List_Table {
$args['include'] = $wpdb->get_col( "SELECT ID FROM $wpdb->users WHERE user_login IN ('$logins')" ); $args['include'] = $wpdb->get_col( "SELECT ID FROM $wpdb->users WHERE user_login IN ('$logins')" );
} }
// If the network is large and a search is not being performed, show only the latest users with no paging in order /*
// to avoid expensive count queries. * If the network is large and a search is not being performed,
* show only the latest users with no paging in order to avoid
* expensive count queries.
*/
if ( !$usersearch && wp_is_large_network( 'users' ) ) { if ( !$usersearch && wp_is_large_network( 'users' ) ) {
if ( !isset($_REQUEST['orderby']) ) if ( !isset($_REQUEST['orderby']) )
$_GET['orderby'] = $_REQUEST['orderby'] = 'id'; $_GET['orderby'] = $_REQUEST['orderby'] = 'id';

View File

@ -340,7 +340,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
$context = $status; $context = $status;
$screen = $this->screen; $screen = $this->screen;
// preorder // Pre-order.
$actions = array( $actions = array(
'deactivate' => '', 'deactivate' => '',
'activate' => '', 'activate' => '',

View File

@ -414,7 +414,7 @@ class WP_Posts_List_Table extends WP_List_Table {
foreach ( $pages as $page ) { foreach ( $pages as $page ) {
// catch and repair bad pages // Catch and repair bad pages.
if ( $page->post_parent == $page->ID ) { if ( $page->post_parent == $page->ID ) {
$page->post_parent = 0; $page->post_parent = 0;
$wpdb->update( $wpdb->posts, array( 'post_parent' => 0 ), array( 'ID' => $page->ID ) ); $wpdb->update( $wpdb->posts, array( 'post_parent' => 0 ), array( 'ID' => $page->ID ) );
@ -449,7 +449,7 @@ class WP_Posts_List_Table extends WP_List_Table {
$this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page ); $this->_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page );
} }
// if it is the last pagenum and there are orphaned pages, display them with paging as well // If it is the last pagenum and there are orphaned pages, display them with paging as well.
if ( isset( $children_pages ) && $count < $end ){ if ( isset( $children_pages ) && $count < $end ){
foreach ( $children_pages as $orphans ){ foreach ( $children_pages as $orphans ){
foreach ( $orphans as $op ) { foreach ( $orphans as $op ) {
@ -591,7 +591,7 @@ class WP_Posts_List_Table extends WP_List_Table {
$attributes = 'class="post-title page-title column-title"' . $style; $attributes = 'class="post-title page-title column-title"' . $style;
if ( $this->hierarchical_display ) { if ( $this->hierarchical_display ) {
if ( 0 == $level && (int) $post->post_parent > 0 ) { if ( 0 == $level && (int) $post->post_parent > 0 ) {
//sent level 0 by accident, by default, or because we don't know the actual level // Sent level 0 by accident, by default, or because we don't know the actual level.
$find_main_page = (int) $post->post_parent; $find_main_page = (int) $post->post_parent;
while ( $find_main_page > 0 ) { while ( $find_main_page > 0 ) {
$parent = get_post( $find_main_page ); $parent = get_post( $find_main_page );

View File

@ -155,12 +155,13 @@ class WP_Terms_List_Table extends WP_List_Table {
) ); ) );
$page = $args['page']; $page = $args['page'];
// set variable because $args['number'] can be subsequently overridden
// Set variable because $args['number'] can be subsequently overridden.
$number = $args['number']; $number = $args['number'];
$args['offset'] = $offset = ( $page - 1 ) * $number; $args['offset'] = $offset = ( $page - 1 ) * $number;
// convert it to table rows // Convert it to table rows.
$count = 0; $count = 0;
if ( is_taxonomy_hierarchical( $taxonomy ) && ! isset( $args['orderby'] ) ) { if ( is_taxonomy_hierarchical( $taxonomy ) && ! isset( $args['orderby'] ) ) {

View File

@ -92,7 +92,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
break; break;
case 'featured': case 'featured':
//case 'popular': // case 'popular':
case 'new': case 'new':
case 'updated': case 'updated':
$args['browse'] = $tab; $args['browse'] = $tab;

View File

@ -73,7 +73,7 @@ class WP_Themes_List_Table extends WP_List_Table {
return; return;
} }
// else, fallthrough. install_themes doesn't help if you can't enable it. // Else, fallthrough. install_themes doesn't help if you can't enable it.
} else { } else {
if ( current_user_can( 'install_themes' ) ) { if ( current_user_can( 'install_themes' ) ) {
printf( __( 'You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress.org Theme Directory at any time: just click on the <a href="%s">Install Themes</a> tab above.' ), admin_url( 'theme-install.php' ) ); printf( __( 'You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress.org Theme Directory at any time: just click on the <a href="%s">Install Themes</a> tab above.' ), admin_url( 'theme-install.php' ) );

View File

@ -190,7 +190,8 @@ class WP_Upgrader {
); );
$args = wp_parse_args($args, $defaults); $args = wp_parse_args($args, $defaults);
// these were previously extract()'d
// These were previously extract()'d.
$source = $args['source']; $source = $args['source'];
$destination = $args['destination']; $destination = $args['destination'];
$clear_destination = $args['clear_destination']; $clear_destination = $args['clear_destination'];
@ -249,14 +250,19 @@ class WP_Upgrader {
return $source; return $source;
} }
//Has the source location changed? If so, we need a new source_files list. // Has the source location changed? If so, we need a new source_files list.
if ( $source !== $remote_source ) { if ( $source !== $remote_source ) {
$source_files = array_keys( $wp_filesystem->dirlist( $source ) ); $source_files = array_keys( $wp_filesystem->dirlist( $source ) );
} }
// Protection against deleting files in any important base directories. /*
// Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the destination directory (WP_PLUGIN_DIR / wp-content/themes) * Protection against deleting files in any important base directories.
// intending to copy the directory into the directory, whilst they pass the source as the actual files to copy. * Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the
* destination directory (WP_PLUGIN_DIR / wp-content/themes) intending
* to copy the directory into the directory, whilst they pass the source
* as the actual files to copy.
*/
$protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' ); $protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' );
if ( is_array( $wp_theme_directories ) ) { if ( is_array( $wp_theme_directories ) ) {
$protected_directories = array_merge( $protected_directories, $wp_theme_directories ); $protected_directories = array_merge( $protected_directories, $wp_theme_directories );
} }
@ -716,7 +722,7 @@ class Plugin_Upgrader extends WP_Upgrader {
return $source; return $source;
} }
//return plugin info. // Return plugin info.
public function plugin_info() { public function plugin_info() {
if ( ! is_array($this->result) ) if ( ! is_array($this->result) )
return false; return false;
@ -1266,8 +1272,10 @@ class Language_Pack_Upgrader extends WP_Upgrader {
$this->update_count = count( $language_updates ); $this->update_count = count( $language_updates );
$this->update_current = 0; $this->update_current = 0;
// The filesystem's mkdir() is not recursive. Make sure WP_LANG_DIR exists, /*
// as we then may need to create a /plugins or /themes directory inside of it. * The filesystem's mkdir() is not recursive. Make sure WP_LANG_DIR exists,
* as we then may need to create a /plugins or /themes directory inside of it.
*/
$remote_destination = $wp_filesystem->find_folder( WP_LANG_DIR ); $remote_destination = $wp_filesystem->find_folder( WP_LANG_DIR );
if ( ! $wp_filesystem->exists( $remote_destination ) ) if ( ! $wp_filesystem->exists( $remote_destination ) )
if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) )
@ -1469,9 +1477,11 @@ class Core_Upgrader extends WP_Upgrader {
$try_rollback = false; $try_rollback = false;
if ( is_wp_error( $result ) ) { if ( is_wp_error( $result ) ) {
$error_code = $result->get_error_code(); $error_code = $result->get_error_code();
// Not all errors are equal. These codes are critical: copy_failed__copy_dir, /*
// mkdir_failed__copy_dir, copy_failed__copy_dir_retry, and disk_full. * Not all errors are equal. These codes are critical: copy_failed__copy_dir,
// do_rollback allows for update_core() to trigger a rollback if needed. * mkdir_failed__copy_dir, copy_failed__copy_dir_retry, and disk_full.
* do_rollback allows for update_core() to trigger a rollback if needed.
*/
if ( false !== strpos( $error_code, 'do_rollback' ) ) if ( false !== strpos( $error_code, 'do_rollback' ) )
$try_rollback = true; $try_rollback = true;
elseif ( false !== strpos( $error_code, '__copy_dir' ) ) elseif ( false !== strpos( $error_code, '__copy_dir' ) )
@ -1601,7 +1611,7 @@ class Core_Upgrader extends WP_Upgrader {
*/ */
if ( ! apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev ) ) if ( ! apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev ) )
return false; return false;
// else fall through to minor + major branches below // Else fall through to minor + major branches below.
} }
// 4: Minor In-branch updates (3.7.0 -> 3.7.1 -> 3.7.2 -> 3.7.4) // 4: Minor In-branch updates (3.7.0 -> 3.7.1 -> 3.7.2 -> 3.7.4)
@ -1692,10 +1702,10 @@ class File_Upload_Upgrader {
'post_status' => 'private' 'post_status' => 'private'
); );
// Save the data // Save the data.
$this->id = wp_insert_attachment( $object, $file['file'] ); $this->id = wp_insert_attachment( $object, $file['file'] );
// schedule a cleanup for 2 hours from now in case of failed install // Schedule a cleanup for 2 hours from now in case of failed install.
wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $this->id ) ); wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $this->id ) );
} elseif ( is_numeric( $_GET[$urlholder] ) ) { } elseif ( is_numeric( $_GET[$urlholder] ) ) {
@ -2018,16 +2028,18 @@ class WP_Automatic_Updater {
// Boom, This sites about to get a whole new splash of paint! // Boom, This sites about to get a whole new splash of paint!
$upgrade_result = $upgrader->upgrade( $upgrader_item, array( $upgrade_result = $upgrader->upgrade( $upgrader_item, array(
'clear_update_cache' => false, 'clear_update_cache' => false,
'pre_check_md5' => false, /* always use partial builds if possible for core updates */ // Always use partial builds if possible for core updates.
'attempt_rollback' => true, /* only available for core updates */ 'pre_check_md5' => false,
// Only available for core updates.
'attempt_rollback' => true,
) ); ) );
// if the filesystem is unavailable, false is returned. // If the filesystem is unavailable, false is returned.
if ( false === $upgrade_result ) { if ( false === $upgrade_result ) {
$upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) ); $upgrade_result = new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.' ) );
} }
// Core doesn't output this, so lets append it so we don't get confused // Core doesn't output this, so lets append it so we don't get confused.
if ( 'core' == $type ) { if ( 'core' == $type ) {
if ( is_wp_error( $upgrade_result ) ) { if ( is_wp_error( $upgrade_result ) ) {
$skin->error( __( 'Installation Failed' ), $upgrade_result ); $skin->error( __( 'Installation Failed' ), $upgrade_result );

View File

@ -531,7 +531,7 @@ function _wp_dashboard_recent_comments_row( &$comment, $show_date = true ) {
$actions_string = ''; $actions_string = '';
if ( current_user_can( 'edit_comment', $comment->comment_ID ) ) { if ( current_user_can( 'edit_comment', $comment->comment_ID ) ) {
// preorder it: Approve | Reply | Edit | Spam | Trash // Pre-order it: Approve | Reply | Edit | Spam | Trash.
$actions = array( $actions = array(
'approve' => '', 'unapprove' => '', 'approve' => '', 'unapprove' => '',
'reply' => '', 'reply' => '',
@ -898,7 +898,8 @@ function wp_dashboard_rss_control( $widget_id, $form_inputs = array() ) {
$_POST['widget-rss'][$number] = wp_unslash( $_POST['widget-rss'][$number] ); $_POST['widget-rss'][$number] = wp_unslash( $_POST['widget-rss'][$number] );
$widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] ); $widget_options[$widget_id] = wp_widget_rss_process( $_POST['widget-rss'][$number] );
$widget_options[$widget_id]['number'] = $number; $widget_options[$widget_id]['number'] = $number;
// title is optional. If black, fill it if possible
// Title is optional. If black, fill it if possible.
if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) { if ( !$widget_options[$widget_id]['title'] && isset($_POST['widget-rss'][$number]['title']) ) {
$rss = fetch_feed($widget_options[$widget_id]['url']); $rss = fetch_feed($widget_options[$widget_id]['url']);
if ( is_wp_error($rss) ) { if ( is_wp_error($rss) ) {

View File

@ -83,10 +83,13 @@ function export_wp( $args = array() ) {
$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) ); $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date'])) ) );
} }
// grab a snapshot of post IDs, just in case it changes during the export // Grab a snapshot of post IDs, just in case it changes during the export.
$post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" ); $post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} $join WHERE $where" );
// get the requested terms ready, empty unless posts filtered by category or all content /*
* Get the requested terms ready, empty unless posts filtered by category
* or all content.
*/
$cats = $tags = $terms = array(); $cats = $tags = $terms = array();
if ( isset( $term ) && $term ) { if ( isset( $term ) && $term ) {
$cat = get_term( $term['term_id'], 'category' ); $cat = get_term( $term['term_id'], 'category' );
@ -99,7 +102,7 @@ function export_wp( $args = array() ) {
$custom_taxonomies = get_taxonomies( array( '_builtin' => false ) ); $custom_taxonomies = get_taxonomies( array( '_builtin' => false ) );
$custom_terms = (array) get_terms( $custom_taxonomies, array( 'get' => 'all' ) ); $custom_terms = (array) get_terms( $custom_taxonomies, array( 'get' => 'all' ) );
// put categories in order with no child going before its parent // Put categories in order with no child going before its parent.
while ( $cat = array_shift( $categories ) ) { while ( $cat = array_shift( $categories ) ) {
if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) ) if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) )
$cats[$cat->term_id] = $cat; $cats[$cat->term_id] = $cat;
@ -107,7 +110,7 @@ function export_wp( $args = array() ) {
$categories[] = $cat; $categories[] = $cat;
} }
// put terms in order with no child going before its parent // Put terms in order with no child going before its parent.
while ( $t = array_shift( $custom_terms ) ) { while ( $t = array_shift( $custom_terms ) ) {
if ( $t->parent == 0 || isset( $terms[$t->parent] ) ) if ( $t->parent == 0 || isset( $terms[$t->parent] ) )
$terms[$t->term_id] = $t; $terms[$t->term_id] = $t;
@ -144,10 +147,10 @@ function export_wp( $args = array() ) {
* @return string Site URL. * @return string Site URL.
*/ */
function wxr_site_url() { function wxr_site_url() {
// ms: the base url // Multisite: the base URL.
if ( is_multisite() ) if ( is_multisite() )
return network_home_url(); return network_home_url();
// wp: the blog url // WordPress (single site): the blog URL.
else else
return get_bloginfo_rss( 'url' ); return get_bloginfo_rss( 'url' );
} }
@ -373,14 +376,16 @@ function export_wp( $args = array() ) {
<?php if ( $post_ids ) { <?php if ( $post_ids ) {
global $wp_query; global $wp_query;
$wp_query->in_the_loop = true; // Fake being in the loop.
// fetch 20 posts at a time rather than loading the entire table into memory // Fake being in the loop.
$wp_query->in_the_loop = true;
// Fetch 20 posts at a time rather than loading the entire table into memory.
while ( $next_posts = array_splice( $post_ids, 0, 20 ) ) { while ( $next_posts = array_splice( $post_ids, 0, 20 ) ) {
$where = 'WHERE ID IN (' . join( ',', $next_posts ) . ')'; $where = 'WHERE ID IN (' . join( ',', $next_posts ) . ')';
$posts = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} $where" ); $posts = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} $where" );
// Begin Loop // Begin Loop.
foreach ( $posts as $post ) { foreach ( $posts as $post ) {
setup_postdata( $post ); setup_postdata( $post );
$is_sticky = is_sticky( $post->ID ) ? 1 : 0; $is_sticky = is_sticky( $post->ID ) ? 1 : 0;

View File

@ -179,8 +179,8 @@ function validate_file_to_edit( $file, $allowed_files = '' ) {
case 1 : case 1 :
wp_die( __( 'Sorry, that file cannot be edited.' ) ); wp_die( __( 'Sorry, that file cannot be edited.' ) );
//case 2 : // case 2 :
// wp_die( __('Sorry, can&#8217;t call files with their real path.' )); // wp_die( __('Sorry, can&#8217;t call files with their real path.' ));
case 3 : case 3 :
wp_die( __( 'Sorry, that file cannot be edited.' ) ); wp_die( __( 'Sorry, that file cannot be edited.' ) );
@ -257,7 +257,10 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) {
__( "Failed to write file to disk." ), __( "Failed to write file to disk." ),
__( "File upload stopped by extension." )); __( "File upload stopped by extension." ));
// this may not have orignially been intended to be overrideable, but historically has been /*
* This may not have orignially been intended to be overrideable,
* but historically has been.
*/
if ( isset( $overrides['upload_error_strings'] ) ) { if ( isset( $overrides['upload_error_strings'] ) ) {
$upload_error_strings = $overrides['upload_error_strings']; $upload_error_strings = $overrides['upload_error_strings'];
} }
@ -267,7 +270,7 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) {
$test_size = isset( $overrides['test_size'] ) ? $overrides['test_size'] : true; $test_size = isset( $overrides['test_size'] ) ? $overrides['test_size'] : true;
$test_upload = isset( $overrides['test_upload'] ) ? $overrides['test_upload'] : true; $test_upload = isset( $overrides['test_upload'] ) ? $overrides['test_upload'] : true;
// If you override this, you must provide $ext and $type!!!! // If you override this, you must provide $ext and $type!!
$test_type = isset( $overrides['test_type'] ) ? $overrides['test_type'] : true; $test_type = isset( $overrides['test_type'] ) ? $overrides['test_type'] : true;
$mimes = isset( $overrides['mimes'] ) ? $overrides['mimes'] : false; $mimes = isset( $overrides['mimes'] ) ? $overrides['mimes'] : false;
@ -314,13 +317,16 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) {
$type = ''; $type = '';
} }
// A writable uploads dir will pass this test. Again, there's no point overriding this one. /*
* A writable uploads dir will pass this test. Again, there's no point
* overriding this one.
*/
if ( ! ( ( $uploads = wp_upload_dir($time) ) && false === $uploads['error'] ) ) if ( ! ( ( $uploads = wp_upload_dir($time) ) && false === $uploads['error'] ) )
return call_user_func($upload_error_handler, $file, $uploads['error'] ); return call_user_func($upload_error_handler, $file, $uploads['error'] );
$filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback ); $filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
// Move the file to the uploads dir // Move the file to the uploads dir.
$new_file = $uploads['path'] . "/$filename"; $new_file = $uploads['path'] . "/$filename";
if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) { if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) {
if ( 0 === strpos( $uploads['basedir'], ABSPATH ) ) if ( 0 === strpos( $uploads['basedir'], ABSPATH ) )
@ -331,12 +337,12 @@ function wp_handle_upload( &$file, $overrides = false, $time = null ) {
return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $error_path ) ); return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $error_path ) );
} }
// Set correct file permissions // Set correct file permissions.
$stat = stat( dirname( $new_file )); $stat = stat( dirname( $new_file ));
$perms = $stat['mode'] & 0000666; $perms = $stat['mode'] & 0000666;
@ chmod( $new_file, $perms ); @ chmod( $new_file, $perms );
// Compute the URL // Compute the URL.
$url = $uploads['url'] . "/$filename"; $url = $uploads['url'] . "/$filename";
if ( is_multisite() ) if ( is_multisite() )
@ -1051,7 +1057,7 @@ function request_filesystem_credentials($form_post, $type = '', $error = false,
$credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : (!empty($_POST['public_key']) ? wp_unslash( $_POST['public_key'] ) : ''); $credentials['public_key'] = defined('FTP_PUBKEY') ? FTP_PUBKEY : (!empty($_POST['public_key']) ? wp_unslash( $_POST['public_key'] ) : '');
$credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : (!empty($_POST['private_key']) ? wp_unslash( $_POST['private_key'] ) : ''); $credentials['private_key'] = defined('FTP_PRIKEY') ? FTP_PRIKEY : (!empty($_POST['private_key']) ? wp_unslash( $_POST['private_key'] ) : '');
//sanitize the hostname, Some people might pass in odd-data: // Sanitize the hostname, Some people might pass in odd-data:
$credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off $credentials['hostname'] = preg_replace('|\w+://|', '', $credentials['hostname']); //Strip any schemes off
if ( strpos($credentials['hostname'], ':') ) { if ( strpos($credentials['hostname'], ':') ) {

View File

@ -411,7 +411,7 @@ function image_edit_apply_changes( $image, $changes ) {
if ( !is_array($changes) ) if ( !is_array($changes) )
return $image; return $image;
// expand change operations // Expand change operations.
foreach ( $changes as $key => $obj ) { foreach ( $changes as $key => $obj ) {
if ( isset($obj->r) ) { if ( isset($obj->r) ) {
$obj->type = 'rotate'; $obj->type = 'rotate';
@ -429,7 +429,7 @@ function image_edit_apply_changes( $image, $changes ) {
$changes[$key] = $obj; $changes[$key] = $obj;
} }
// combine operations // Combine operations.
if ( count($changes) > 1 ) { if ( count($changes) > 1 ) {
$filtered = array($changes[0]); $filtered = array($changes[0]);
for ( $i = 0, $j = 1; $j < count($changes); $j++ ) { for ( $i = 0, $j = 1; $j < count($changes); $j++ ) {
@ -453,7 +453,7 @@ function image_edit_apply_changes( $image, $changes ) {
unset($filtered); unset($filtered);
} }
// image resource before applying the changes // Image resource before applying the changes.
if ( $image instanceof WP_Image_Editor ) { if ( $image instanceof WP_Image_Editor ) {
/** /**
@ -540,7 +540,7 @@ function stream_preview_image( $post_id ) {
if ( $changes ) if ( $changes )
$img = image_edit_apply_changes( $img, $changes ); $img = image_edit_apply_changes( $img, $changes );
// scale the image // Scale the image.
$size = $img->get_size(); $size = $img->get_size();
$w = $size['width']; $w = $size['width'];
$h = $size['height']; $h = $size['height'];
@ -576,7 +576,8 @@ function wp_restore_image($post_id) {
if ( $parts['basename'] != $data['file'] ) { if ( $parts['basename'] != $data['file'] ) {
if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) { if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
// delete only if it's edited image
// Delete only if it's edited image.
if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) { if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) {
/** This filter is documented in wp-admin/custom-header.php */ /** This filter is documented in wp-admin/custom-header.php */
@ -601,7 +602,8 @@ function wp_restore_image($post_id) {
$data = $backup_sizes["$default_size-orig"]; $data = $backup_sizes["$default_size-orig"];
if ( isset($meta['sizes'][$default_size]) && $meta['sizes'][$default_size]['file'] != $data['file'] ) { if ( isset($meta['sizes'][$default_size]) && $meta['sizes'][$default_size]['file'] != $data['file'] ) {
if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) { if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
// delete only if it's edited image
// Delete only if it's edited image
if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) { if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) {
/** This filter is documented in wp-admin/custom-header.php */ /** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) ); $delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
@ -661,10 +663,10 @@ function wp_save_image( $post_id ) {
$sX = $size['width']; $sX = $size['width'];
$sY = $size['height']; $sY = $size['height'];
// check if it has roughly the same w / h ratio // Check if it has roughly the same w / h ratio.
$diff = round($sX / $sY, 2) - round($fwidth / $fheight, 2); $diff = round($sX / $sY, 2) - round($fwidth / $fheight, 2);
if ( -0.1 < $diff && $diff < 0.1 ) { if ( -0.1 < $diff && $diff < 0.1 ) {
// scale the full size image // Scale the full size image.
if ( $img->resize( $fwidth, $fheight ) ) if ( $img->resize( $fwidth, $fheight ) )
$scaled = true; $scaled = true;
} }
@ -693,7 +695,7 @@ function wp_save_image( $post_id ) {
if ( !is_array($backup_sizes) ) if ( !is_array($backup_sizes) )
$backup_sizes = array(); $backup_sizes = array();
// generate new filename // Generate new filename.
$path = get_attached_file($post_id); $path = get_attached_file($post_id);
$path_parts = pathinfo( $path ); $path_parts = pathinfo( $path );
$filename = $path_parts['filename']; $filename = $path_parts['filename'];
@ -719,7 +721,7 @@ function wp_save_image( $post_id ) {
} }
} }
// save the full-size file, also needed to create sub-sizes // Save the full-size file, also needed to create sub-sizes.
if ( !wp_save_image_file($new_path, $img, $post->post_mime_type, $post_id) ) { if ( !wp_save_image_file($new_path, $img, $post->post_mime_type, $post_id) ) {
$return->error = esc_js( __('Unable to save the image.') ); $return->error = esc_js( __('Unable to save the image.') );
return $return; return $return;

View File

@ -47,8 +47,10 @@ function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $s
if ( ! $dst_file ) if ( ! $dst_file )
$dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file ); $dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file );
// The directory containing the original file may no longer exist when /*
// using a replication plugin. * The directory containing the original file may no longer exist when
* using a replication plugin.
*/
wp_mkdir_p( dirname( $dst_file ) ); wp_mkdir_p( dirname( $dst_file ) );
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) ); $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
@ -79,10 +81,10 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
$metadata['width'] = $imagesize[0]; $metadata['width'] = $imagesize[0];
$metadata['height'] = $imagesize[1]; $metadata['height'] = $imagesize[1];
// Make the file path relative to the upload dir // Make the file path relative to the upload dir.
$metadata['file'] = _wp_relative_upload_path($file); $metadata['file'] = _wp_relative_upload_path($file);
// make thumbnails and other intermediate sizes // Make thumbnails and other intermediate sizes.
global $_wp_additional_image_sizes; global $_wp_additional_image_sizes;
$sizes = array(); $sizes = array();
@ -120,7 +122,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
$metadata['sizes'] = array(); $metadata['sizes'] = array();
} }
// fetch additional metadata from exif/iptc // Fetch additional metadata from EXIF/IPTC.
$image_meta = wp_read_image_metadata( $file ); $image_meta = wp_read_image_metadata( $file );
if ( $image_meta ) if ( $image_meta )
$metadata['image_meta'] = $image_meta; $metadata['image_meta'] = $image_meta;
@ -134,7 +136,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
} }
if ( $support && ! empty( $metadata['image']['data'] ) ) { if ( $support && ! empty( $metadata['image']['data'] ) ) {
// check for existing cover // Check for existing cover.
$hash = md5( $metadata['image']['data'] ); $hash = md5( $metadata['image']['data'] );
$posts = get_posts( array( $posts = get_posts( array(
'fields' => 'ids', 'fields' => 'ids',
@ -187,7 +189,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
} }
} }
// remove the blob of binary data from the array // Remove the blob of binary data from the array.
if ( isset( $metadata['image']['data'] ) ) if ( isset( $metadata['image']['data'] ) )
unset( $metadata['image']['data'] ); unset( $metadata['image']['data'] );
@ -254,10 +256,12 @@ function wp_read_image_metadata( $file ) {
list( , , $sourceImageType ) = getimagesize( $file ); list( , , $sourceImageType ) = getimagesize( $file );
// exif contains a bunch of data we'll probably never need formatted in ways /*
// that are difficult to use. We'll normalize it and just extract the fields * EXIF contains a bunch of data we'll probably never need formatted in ways
// that are likely to be useful. Fractions and numbers are converted to * that are difficult to use. We'll normalize it and just extract the fields
// floats, dates to unix timestamps, and everything else to strings. * that are likely to be useful. Fractions and numbers are converted to
* floats, dates to unix timestamps, and everything else to strings.
*/
$meta = array( $meta = array(
'aperture' => 0, 'aperture' => 0,
'credit' => '', 'credit' => '',
@ -271,20 +275,26 @@ function wp_read_image_metadata( $file ) {
'title' => '', 'title' => '',
); );
// read iptc first, since it might contain data not available in exif such /*
// as caption, description etc * Read IPTC first, since it might contain data not available in exif such
* as caption, description etc.
*/
if ( is_callable( 'iptcparse' ) ) { if ( is_callable( 'iptcparse' ) ) {
getimagesize( $file, $info ); getimagesize( $file, $info );
if ( ! empty( $info['APP13'] ) ) { if ( ! empty( $info['APP13'] ) ) {
$iptc = iptcparse( $info['APP13'] ); $iptc = iptcparse( $info['APP13'] );
// headline, "A brief synopsis of the caption." // Headline, "A brief synopsis of the caption."
if ( ! empty( $iptc['2#105'][0] ) ) if ( ! empty( $iptc['2#105'][0] ) ) {
$meta['title'] = trim( $iptc['2#105'][0] ); $meta['title'] = trim( $iptc['2#105'][0] );
// title, "Many use the Title field to store the filename of the image, though the field may be used in many ways." /*
elseif ( ! empty( $iptc['2#005'][0] ) ) * Title, "Many use the Title field to store the filename of the image,
* though the field may be used in many ways."
*/
} elseif ( ! empty( $iptc['2#005'][0] ) ) {
$meta['title'] = trim( $iptc['2#005'][0] ); $meta['title'] = trim( $iptc['2#005'][0] );
}
if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption
$caption = trim( $iptc['2#120'][0] ); $caption = trim( $iptc['2#120'][0] );
@ -568,8 +578,10 @@ function _copy_image_file( $attachment_id ) {
$dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file ); $dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file );
$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) ); $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
// The directory containing the original file may no longer exist when /*
// using a replication plugin. * The directory containing the original file may no longer
* exist when using a replication plugin.
*/
wp_mkdir_p( dirname( $dst_file ) ); wp_mkdir_p( dirname( $dst_file ) );
if ( ! @copy( $src_file, $dst_file ) ) if ( ! @copy( $src_file, $dst_file ) )

View File

@ -105,7 +105,10 @@ function wp_import_handle_upload() {
// Save the data // Save the data
$id = wp_insert_attachment( $object, $file ); $id = wp_insert_attachment( $object, $file );
// schedule a cleanup for one day from now in case of failed import or missing wp_import_cleanup() call /*
* Schedule a cleanup for one day from now in case of failed
* import or missing wp_import_cleanup() call.
*/
wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) ); wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) );
return array( 'file' => $file, 'id' => $id ); return array( 'file' => $file, 'id' => $id );

View File

@ -180,7 +180,8 @@ function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $
$caption = str_replace( array("\r\n", "\r"), "\n", $caption); $caption = str_replace( array("\r\n", "\r"), "\n", $caption);
$caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption ); $caption = preg_replace_callback( '/<[a-zA-Z0-9]+(?: [^<>]+>)*/', '_cleanup_image_add_caption', $caption );
// convert any remaining line breaks to <br>
// Convert any remaining line breaks to <br>.
$caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption ); $caption = preg_replace( '/[ \n\t]*\n[ \t]*/', '<br />', $caption );
$html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html ); $html = preg_replace( '/(class=["\'][^\'"]*)align(none|left|right|center)\s?/', '$1', $html );
@ -208,7 +209,7 @@ add_filter( 'image_send_to_editor', 'image_add_caption', 20, 8 );
* @since 3.4.0 * @since 3.4.0
*/ */
function _cleanup_image_add_caption( $matches ) { function _cleanup_image_add_caption( $matches ) {
// remove any line breaks from inside the tags // Remove any line breaks from inside the tags.
return preg_replace( '/[\r\n\t]+/', ' ', $matches[0] ); return preg_replace( '/[\r\n\t]+/', ' ', $matches[0] );
} }
@ -317,7 +318,7 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
if ( ! empty( $meta['genre'] ) ) if ( ! empty( $meta['genre'] ) )
$content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] ); $content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] );
// use image exif/iptc data for title and caption defaults if possible // Use image exif/iptc data for title and caption defaults if possible.
} elseif ( $image_meta = @wp_read_image_metadata( $file ) ) { } elseif ( $image_meta = @wp_read_image_metadata( $file ) ) {
if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
$title = $image_meta['title']; $title = $image_meta['title'];
@ -378,7 +379,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
$title = preg_replace('/\.[^.]+$/', '', basename($file)); $title = preg_replace('/\.[^.]+$/', '', basename($file));
$content = ''; $content = '';
// use image exif/iptc data for title and caption defaults if possible // Use image exif/iptc data for title and caption defaults if possible.
if ( $image_meta = @wp_read_image_metadata($file) ) { if ( $image_meta = @wp_read_image_metadata($file) ) {
if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) if ( trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) )
$title = $image_meta['title']; $title = $image_meta['title'];
@ -389,7 +390,7 @@ function media_handle_sideload($file_array, $post_id, $desc = null, $post_data =
if ( isset( $desc ) ) if ( isset( $desc ) )
$title = $desc; $title = $desc;
// Construct the attachment array // Construct the attachment array.
$attachment = array_merge( array( $attachment = array_merge( array(
'post_mime_type' => $type, 'post_mime_type' => $type,
'guid' => $url, 'guid' => $url,
@ -634,7 +635,8 @@ function media_upload_form_handler() {
$image_alt = wp_unslash( $attachment['image_alt'] ); $image_alt = wp_unslash( $attachment['image_alt'] );
if ( $image_alt != get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ) { if ( $image_alt != get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ) {
$image_alt = wp_strip_all_tags( $image_alt, true ); $image_alt = wp_strip_all_tags( $image_alt, true );
// update_meta expects slashed
// Update_meta expects slashed.
update_post_meta( $attachment_id, '_wp_attachment_image_alt', wp_slash( $image_alt ) ); update_post_meta( $attachment_id, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
} }
} }
@ -807,11 +809,11 @@ function wp_media_upload_handler() {
*/ */
function media_sideload_image( $file, $post_id, $desc = null ) { function media_sideload_image( $file, $post_id, $desc = null ) {
if ( ! empty( $file ) ) { if ( ! empty( $file ) ) {
// Set variables for storage // Set variables for storage, fix file filename for query strings.
// fix file filename for query strings
preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches ); preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches );
$file_array['name'] = basename( $matches[0] ); $file_array['name'] = basename( $matches[0] );
// Download file to temp location
// Download file to temp location.
$file_array['tmp_name'] = download_url( $file ); $file_array['tmp_name'] = download_url( $file );
// If error storing temporarily, return the error. // If error storing temporarily, return the error.
@ -819,9 +821,10 @@ function media_sideload_image( $file, $post_id, $desc = null ) {
return $file_array['tmp_name']; return $file_array['tmp_name'];
} }
// do the validation and storage stuff // Do the validation and storage stuff.
$id = media_handle_sideload( $file_array, $post_id, $desc ); $id = media_handle_sideload( $file_array, $post_id, $desc );
// If error storing permanently, unlink
// If error storing permanently, unlink.
if ( is_wp_error( $id ) ) { if ( is_wp_error( $id ) ) {
@unlink( $file_array['tmp_name'] ); @unlink( $file_array['tmp_name'] );
return $id; return $id;
@ -830,7 +833,7 @@ function media_sideload_image( $file, $post_id, $desc = null ) {
$src = wp_get_attachment_url( $id ); $src = wp_get_attachment_url( $id );
} }
// Finally check to make sure the file has been saved, then return the html // Finally check to make sure the file has been saved, then return the HTML.
if ( ! empty( $src ) ) { if ( ! empty( $src ) ) {
$alt = isset( $desc ) ? esc_attr( $desc ) : ''; $alt = isset( $desc ) ? esc_attr( $desc ) : '';
$html = "<img src='$src' alt='$alt' />"; $html = "<img src='$src' alt='$alt' />";
@ -943,17 +946,21 @@ function image_size_input_fields( $post, $check = '' ) {
$downsize = image_downsize($post->ID, $size); $downsize = image_downsize($post->ID, $size);
$checked = ''; $checked = '';
// is this size selectable? // Is this size selectable?
$enabled = ( $downsize[3] || 'full' == $size ); $enabled = ( $downsize[3] || 'full' == $size );
$css_id = "image-size-{$size}-{$post->ID}"; $css_id = "image-size-{$size}-{$post->ID}";
// if this size is the default but that's not available, don't select it
// If this size is the default but that's not available, don't select it.
if ( $size == $check ) { if ( $size == $check ) {
if ( $enabled ) if ( $enabled )
$checked = " checked='checked'"; $checked = " checked='checked'";
else else
$check = ''; $check = '';
} elseif ( !$check && $enabled && 'thumbnail' != $size ) { } elseif ( !$check && $enabled && 'thumbnail' != $size ) {
// if $check is not enabled, default to the first available size that's bigger than a thumbnail /*
* If $check is not enabled, default to the first available size
* that's bigger than a thumbnail.
*/
$check = $size; $check = $size;
$checked = " checked='checked'"; $checked = " checked='checked'";
} }
@ -961,7 +968,8 @@ function image_size_input_fields( $post, $check = '' ) {
$html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />"; $html = "<div class='image-size-item'><input type='radio' " . disabled( $enabled, false, false ) . "name='attachments[$post->ID][image-size]' id='{$css_id}' value='{$size}'$checked />";
$html .= "<label for='{$css_id}'>$label</label>"; $html .= "<label for='{$css_id}'>$label</label>";
// only show the dimensions if that choice is available
// Only show the dimensions if that choice is available.
if ( $enabled ) if ( $enabled )
$html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>"; $html .= " <label for='{$css_id}' class='help'>" . sprintf( "(%d&nbsp;&times;&nbsp;%d)", $downsize[1], $downsize[2] ). "</label>";
@ -1009,7 +1017,7 @@ function image_link_input_fields($post, $url_type = '') {
} }
function wp_caption_input_textarea($edit_post) { function wp_caption_input_textarea($edit_post) {
// post data is already escaped // Post data is already escaped.
$name = "attachments[{$edit_post->ID}][post_excerpt]"; $name = "attachments[{$edit_post->ID}][post_excerpt]";
return '<textarea name="' . $name . '" id="' . $name . '">' . $edit_post->post_excerpt . '</textarea>'; return '<textarea name="' . $name . '" id="' . $name . '">' . $edit_post->post_excerpt . '</textarea>';
@ -1472,10 +1480,10 @@ function get_media_item( $attachment_id, $args = null ) {
$item .= $field[ $field['input'] ]; $item .= $field[ $field['input'] ];
elseif ( $field['input'] == 'textarea' ) { elseif ( $field['input'] == 'textarea' ) {
if ( 'post_content' == $id && user_can_richedit() ) { if ( 'post_content' == $id && user_can_richedit() ) {
// sanitize_post() skips the post_content when user_can_richedit // Sanitize_post() skips the post_content when user_can_richedit.
$field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES ); $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
} }
// post_excerpt is already escaped by sanitize_post() in get_attachment_fields_to_edit() // Post_excerpt is already escaped by sanitize_post() in get_attachment_fields_to_edit().
$item .= "<textarea id='$name' name='$name' $aria_required>" . $field['value'] . '</textarea>'; $item .= "<textarea id='$name' name='$name' $aria_required>" . $field['value'] . '</textarea>';
} else { } else {
$item .= "<input type='text' class='text' id='$name' name='$name' value='" . esc_attr( $field['value'] ) . "' $aria_required />"; $item .= "<input type='text' class='text' id='$name' name='$name' value='" . esc_attr( $field['value'] ) . "' $aria_required />";
@ -1621,7 +1629,7 @@ function get_compat_media_markup( $attachment_id, $args = null ) {
$item .= $field[ $field['input'] ]; $item .= $field[ $field['input'] ];
elseif ( $field['input'] == 'textarea' ) { elseif ( $field['input'] == 'textarea' ) {
if ( 'post_content' == $id && user_can_richedit() ) { if ( 'post_content' == $id && user_can_richedit() ) {
// sanitize_post() skips the post_content when user_can_richedit // sanitize_post() skips the post_content when user_can_richedit.
$field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES ); $field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
} }
$item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>'; $item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>';
@ -2852,7 +2860,7 @@ function wp_add_id3_tag_data( &$metadata, $data ) {
foreach ( $data[$version]['comments'] as $key => $list ) { foreach ( $data[$version]['comments'] as $key => $list ) {
if ( ! empty( $list ) ) { if ( ! empty( $list ) ) {
$metadata[$key] = reset( $list ); $metadata[$key] = reset( $list );
// fix bug in byte stream analysis // Fix bug in byte stream analysis.
if ( 'terms_of_use' === $key && 0 === strpos( $metadata[$key], 'yright notice.' ) ) if ( 'terms_of_use' === $key && 0 === strpos( $metadata[$key], 'yright notice.' ) )
$metadata[$key] = 'Cop' . $metadata[$key]; $metadata[$key] = 'Cop' . $metadata[$key];
} }

View File

@ -97,8 +97,10 @@ foreach ( $menu as $id => $data ) {
$first_sub = array_shift($subs); $first_sub = array_shift($subs);
$old_parent = $data[2]; $old_parent = $data[2];
$new_parent = $first_sub[2]; $new_parent = $first_sub[2];
// If the first submenu is not the same as the assigned parent, /*
// make the first submenu the new parent. * If the first submenu is not the same as the assigned parent,
* make the first submenu the new parent.
*/
if ( $new_parent != $old_parent ) { if ( $new_parent != $old_parent ) {
$_wp_real_parent_file[$old_parent] = $new_parent; $_wp_real_parent_file[$old_parent] = $new_parent;
$menu[$id][2] = $new_parent; $menu[$id][2] = $new_parent;

View File

@ -163,8 +163,10 @@ function save_mod_rewrite_rules() {
$home_path = get_home_path(); $home_path = get_home_path();
$htaccess_file = $home_path.'.htaccess'; $htaccess_file = $home_path.'.htaccess';
// If the file doesn't already exist check for write access to the directory and whether we have some rules. /*
// else check for write access to the file. * If the file doesn't already exist check for write access to the directory
* and whether we have some rules. Else check for write access to the file.
*/
if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) { if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {
if ( got_mod_rewrite() ) { if ( got_mod_rewrite() ) {
$rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() ); $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );

View File

@ -14,7 +14,7 @@
*/ */
function wpmu_menu() { function wpmu_menu() {
_deprecated_function(__FUNCTION__, '3.0' ); _deprecated_function(__FUNCTION__, '3.0' );
// deprecated. See #11763 // Deprecated. See #11763.
} }
/** /**

View File

@ -516,7 +516,7 @@ function wp_nav_menu_post_type_meta_boxes() {
$post_type = apply_filters( 'nav_menu_meta_box_object', $post_type ); $post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
if ( $post_type ) { if ( $post_type ) {
$id = $post_type->name; $id = $post_type->name;
// give pages a higher priority // Give pages a higher priority.
$priority = ( 'page' == $post_type->name ? 'core' : 'default' ); $priority = ( 'page' == $post_type->name ? 'core' : 'default' );
add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', $priority, $post_type ); add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', $priority, $post_type );
} }
@ -615,7 +615,7 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
$post_type_name = $post_type['args']->name; $post_type_name = $post_type['args']->name;
// paginate browsing for large numbers of post objects // Paginate browsing for large numbers of post objects.
$per_page = 50; $per_page = 50;
$pagenum = isset( $_REQUEST[$post_type_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1; $pagenum = isset( $_REQUEST[$post_type_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
$offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0; $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
@ -762,7 +762,10 @@ function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
<?php <?php
$args['walker'] = $walker; $args['walker'] = $walker;
// if we're dealing with pages, let's put a checkbox for the front page at the top of the list /*
* If we're dealing with pages, let's put a checkbox for the front
* page at the top of the list.
*/
if ( 'page' == $post_type_name ) { if ( 'page' == $post_type_name ) {
$front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0; $front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
if ( ! empty( $front_page ) ) { if ( ! empty( $front_page ) ) {
@ -854,7 +857,7 @@ function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) {
global $nav_menu_selected_id; global $nav_menu_selected_id;
$taxonomy_name = $taxonomy['args']->name; $taxonomy_name = $taxonomy['args']->name;
// paginate browsing for large numbers of objects // Paginate browsing for large numbers of objects.
$per_page = 50; $per_page = 50;
$pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1; $pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
$offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0; $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
@ -1045,21 +1048,26 @@ function wp_save_nav_menu_items( $menu_id = 0, $menu_data = array() ) {
if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) { if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
// Loop through all the menu items' POST values // Loop through all the menu items' POST values.
foreach( (array) $menu_data as $_possible_db_id => $_item_object_data ) { foreach( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
if ( if (
empty( $_item_object_data['menu-item-object-id'] ) && // checkbox is not checked // Checkbox is not checked.
empty( $_item_object_data['menu-item-object-id'] ) &&
( (
! isset( $_item_object_data['menu-item-type'] ) || // and item type either isn't set // And item type either isn't set.
in_array( $_item_object_data['menu-item-url'], array( 'http://', '' ) ) || // or URL is the default ! isset( $_item_object_data['menu-item-type'] ) ||
// Or URL is the default.
in_array( $_item_object_data['menu-item-url'], array( 'http://', '' ) ) ||
! ( 'custom' == $_item_object_data['menu-item-type'] && ! isset( $_item_object_data['menu-item-db-id'] ) ) || // or it's not a custom menu item (but not the custom home page) ! ( 'custom' == $_item_object_data['menu-item-type'] && ! isset( $_item_object_data['menu-item-db-id'] ) ) || // or it's not a custom menu item (but not the custom home page)
! empty( $_item_object_data['menu-item-db-id'] ) // or it *is* a custom menu item that already exists // Or it *is* a custom menu item that already exists.
! empty( $_item_object_data['menu-item-db-id'] )
) )
) { ) {
continue; // then this potential menu item is not getting added to this menu // Then this potential menu item is not getting added to this menu.
continue;
} }
// if this possible menu item doesn't actually have a menu database ID yet // If this possible menu item doesn't actually have a menu database ID yet.
if ( if (
empty( $_item_object_data['menu-item-db-id'] ) || empty( $_item_object_data['menu-item-db-id'] ) ||
( 0 > $_possible_db_id ) || ( 0 > $_possible_db_id ) ||
@ -1112,20 +1120,20 @@ function _wp_nav_menu_meta_box_object( $object = null ) {
'post_status' => 'publish', 'post_status' => 'publish',
); );
// posts should show only published items // Posts should show only published items.
} elseif ( 'post' == $object->name ) { } elseif ( 'post' == $object->name ) {
$object->_default_query = array( $object->_default_query = array(
'post_status' => 'publish', 'post_status' => 'publish',
); );
// cats should be in reverse chronological order // Categories should be in reverse chronological order.
} elseif ( 'category' == $object->name ) { } elseif ( 'category' == $object->name ) {
$object->_default_query = array( $object->_default_query = array(
'orderby' => 'id', 'orderby' => 'id',
'order' => 'DESC', 'order' => 'DESC',
); );
// custom post types should show only published items // Custom post types should show only published items.
} else { } else {
$object->_default_query = array( $object->_default_query = array(
'post_status' => 'publish', 'post_status' => 'publish',
@ -1226,7 +1234,7 @@ function _wp_delete_orphaned_draft_menu_items() {
global $wpdb; global $wpdb;
$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS ); $delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
// delete orphaned draft menu items // Delete orphaned draft menu items.
$menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) ); $menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
foreach( (array) $menu_items_to_delete as $menu_item_id ) foreach( (array) $menu_items_to_delete as $menu_item_id )

View File

@ -245,15 +245,18 @@ add_action( 'install_plugins_favorites', 'display_plugins_table' );
* @since 3.0.0 * @since 3.0.0
*/ */
function install_plugin_install_status($api, $loop = false) { function install_plugin_install_status($api, $loop = false) {
// this function is called recursively, $loop prevents further loops. // This function is called recursively, $loop prevents further loops.
if ( is_array($api) ) if ( is_array($api) )
$api = (object) $api; $api = (object) $api;
//Default to a "new" plugin // Default to a "new" plugin
$status = 'install'; $status = 'install';
$url = false; $url = false;
//Check to see if this plugin is known to be installed, and has an update awaiting it. /*
* Check to see if this plugin is known to be installed,
* and has an update awaiting it.
*/
$update_plugins = get_site_transient('update_plugins'); $update_plugins = get_site_transient('update_plugins');
if ( isset( $update_plugins->response ) ) { if ( isset( $update_plugins->response ) ) {
foreach ( (array)$update_plugins->response as $file => $plugin ) { foreach ( (array)$update_plugins->response as $file => $plugin ) {
@ -438,7 +441,7 @@ function install_plugin_information() {
if ( ! empty( $api->ratings ) && array_sum( (array) $api->ratings ) > 0 ) { if ( ! empty( $api->ratings ) && array_sum( (array) $api->ratings ) > 0 ) {
foreach( $api->ratings as $key => $ratecount ) { foreach( $api->ratings as $key => $ratecount ) {
// avoid div-by-zero // Avoid div-by-zero.
$_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0; $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0;
?> ?>
<div class="counter-container"> <div class="counter-container">

View File

@ -851,7 +851,7 @@ function delete_plugins( $plugins, $deprecated = '' ) {
*/ */
function validate_active_plugins() { function validate_active_plugins() {
$plugins = get_option( 'active_plugins', array() ); $plugins = get_option( 'active_plugins', array() );
// validate vartype: array // Validate vartype: array.
if ( ! is_array( $plugins ) ) { if ( ! is_array( $plugins ) ) {
update_option( 'active_plugins', array() ); update_option( 'active_plugins', array() );
$plugins = array(); $plugins = array();
@ -867,7 +867,7 @@ function validate_active_plugins() {
$invalid = array(); $invalid = array();
// invalid plugins get deactivated // Invalid plugins get deactivated.
foreach ( $plugins as $plugin ) { foreach ( $plugins as $plugin ) {
$result = validate_plugin( $plugin ); $result = validate_plugin( $plugin );
if ( is_wp_error( $result ) ) { if ( is_wp_error( $result ) ) {
@ -1119,10 +1119,12 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
return false; return false;
} }
// If the parent doesn't already have a submenu, add a link to the parent /*
// as the first item in the submenu. If the submenu file is the same as the * If the parent doesn't already have a submenu, add a link to the parent
// parent file someone is trying to link back to the parent manually. In * as the first item in the submenu. If the submenu file is the same as the
// this case, don't automatically add a link back to avoid duplication. * parent file someone is trying to link back to the parent manually. In
* this case, don't automatically add a link back to avoid duplication.
*/
if (!isset( $submenu[$parent_slug] ) && $menu_slug != $parent_slug ) { if (!isset( $submenu[$parent_slug] ) && $menu_slug != $parent_slug ) {
foreach ( (array)$menu as $parent_menu ) { foreach ( (array)$menu as $parent_menu ) {
if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) ) if ( $parent_menu[2] == $parent_slug && current_user_can( $parent_menu[1] ) )
@ -1137,11 +1139,15 @@ function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability,
add_action( $hookname, $function ); add_action( $hookname, $function );
$_registered_pages[$hookname] = true; $_registered_pages[$hookname] = true;
// backwards-compatibility for plugins using add_management page. See wp-admin/admin.php for redirect from edit.php to tools.php
/*
* Backward-compatibility for plugins using add_management page.
* See wp-admin/admin.php for redirect from edit.php to tools.php
*/
if ( 'tools.php' == $parent_slug ) if ( 'tools.php' == $parent_slug )
$_registered_pages[get_plugin_page_hookname( $menu_slug, 'edit.php')] = true; $_registered_pages[get_plugin_page_hookname( $menu_slug, 'edit.php')] = true;
// No parent as top level // No parent as top level.
$_parent_pages[$menu_slug] = $parent_slug; $_parent_pages[$menu_slug] = $parent_slug;
return $hookname; return $hookname;

View File

@ -302,7 +302,7 @@ function edit_post( $post_data = null ) {
$image_alt = wp_unslash( $post_data['_wp_attachment_image_alt'] ); $image_alt = wp_unslash( $post_data['_wp_attachment_image_alt'] );
if ( $image_alt != get_post_meta( $post_ID, '_wp_attachment_image_alt', true ) ) { if ( $image_alt != get_post_meta( $post_ID, '_wp_attachment_image_alt', true ) ) {
$image_alt = wp_strip_all_tags( $image_alt, true ); $image_alt = wp_strip_all_tags( $image_alt, true );
// update_meta expects slashed // update_meta expects slashed.
update_post_meta( $post_ID, '_wp_attachment_image_alt', wp_slash( $image_alt ) ); update_post_meta( $post_ID, '_wp_attachment_image_alt', wp_slash( $image_alt ) );
} }
} }
@ -740,9 +740,10 @@ function add_meta( $post_ID ) {
$metavalue = trim( $metavalue ); $metavalue = trim( $metavalue );
if ( ('0' === $metavalue || ! empty ( $metavalue ) ) && ( ( ( '#NONE#' != $metakeyselect ) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput ) ) ) { if ( ('0' === $metavalue || ! empty ( $metavalue ) ) && ( ( ( '#NONE#' != $metakeyselect ) && !empty ( $metakeyselect) ) || !empty ( $metakeyinput ) ) ) {
// We have a key/value pair. If both the select and the /*
// input for the key have data, the input takes precedence: * We have a key/value pair. If both the select and the input
* for the key have data, the input takes precedence.
*/
if ( '#NONE#' != $metakeyselect ) if ( '#NONE#' != $metakeyselect )
$metakey = $metakeyselect; $metakey = $metakeyselect;

View File

@ -177,8 +177,11 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
); );
} }
// If a post has been saved since the last revision (no revisioned fields were changed) /*
// we may not have a "current" revision. Mark the latest revision as "current". * If a post has been saved since the last revision (no revisioned fields
* were changed), we may not have a "current" revision. Mark the latest
* revision as "current".
*/
if ( empty( $current_id ) ) { if ( empty( $current_id ) ) {
if ( $revisions[ $revision->ID ]['autosave'] ) { if ( $revisions[ $revision->ID ]['autosave'] ) {
$revision = end( $revisions ); $revision = end( $revisions );
@ -192,7 +195,7 @@ function wp_prepare_revisions_for_js( $post, $selected_revision_id, $from = null
$revisions[ $current_id ]['current'] = true; $revisions[ $current_id ]['current'] = true;
} }
// 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 ) );

View File

@ -205,7 +205,7 @@ CREATE TABLE $wpdb->posts (
KEY user_nicename (user_nicename) KEY user_nicename (user_nicename)
) $charset_collate;\n"; ) $charset_collate;\n";
// usermeta // Usermeta.
$usermeta_table = "CREATE TABLE $wpdb->usermeta ( $usermeta_table = "CREATE TABLE $wpdb->usermeta (
umeta_id bigint(20) unsigned NOT NULL auto_increment, umeta_id bigint(20) unsigned NOT NULL auto_increment,
user_id bigint(20) unsigned NOT NULL default '0', user_id bigint(20) unsigned NOT NULL default '0',
@ -522,10 +522,10 @@ function populate_options() {
if ( !empty($insert) ) if ( !empty($insert) )
$wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES " . $insert); $wpdb->query("INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES " . $insert);
// in case it is set, but blank, update "home" // In case it is set, but blank, update "home".
if ( !__get_option('home') ) update_option('home', $guessurl); if ( !__get_option('home') ) update_option('home', $guessurl);
// Delete unused options // Delete unused options.
$unusedoptions = array( $unusedoptions = array(
'blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory',
'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping',
@ -547,12 +547,14 @@ function populate_options() {
foreach ( $unusedoptions as $option ) foreach ( $unusedoptions as $option )
delete_option($option); delete_option($option);
// delete obsolete magpie stuff // Delete obsolete magpie stuff.
$wpdb->query("DELETE FROM $wpdb->options WHERE option_name REGEXP '^rss_[0-9a-f]{32}(_ts)?$'"); $wpdb->query("DELETE FROM $wpdb->options WHERE option_name REGEXP '^rss_[0-9a-f]{32}(_ts)?$'");
// Deletes all expired transients. /*
// The multi-table delete syntax is used to delete the transient record from table a, * Deletes all expired transients. The multi-table delete syntax is used
// and the corresponding transient_timeout record from table b. * to delete the transient record from table a, and the corresponding
* transient_timeout record from table b.
*/
$time = time(); $time = time();
$sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b
WHERE a.option_name LIKE %s WHERE a.option_name LIKE %s
@ -819,8 +821,10 @@ function populate_roles_300() {
$role->add_cap( 'list_users' ); $role->add_cap( 'list_users' );
$role->add_cap( 'remove_users' ); $role->add_cap( 'remove_users' );
// Never used, will be removed. create_users or /*
// promote_users is the capability you're looking for. * Never used, will be removed. create_users or promote_users
* is the capability you're looking for.
*/
$role->add_cap( 'add_users' ); $role->add_cap( 'add_users' );
$role->add_cap( 'promote_users' ); $role->add_cap( 'promote_users' );
@ -863,7 +867,7 @@ function populate_network( $network_id = 1, $domain = '', $email = '', $site_nam
if ( '' == $site_name ) if ( '' == $site_name )
$errors->add( 'empty_sitename', __( 'You must provide a name for your network of sites.' ) ); $errors->add( 'empty_sitename', __( 'You must provide a name for your network of sites.' ) );
// check for network collision // Check for network collision.
if ( $network_id == $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $wpdb->site WHERE id = %d", $network_id ) ) ) if ( $network_id == $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $wpdb->site WHERE id = %d", $network_id ) ) )
$errors->add( 'siteid_exists', __( 'The network already exists.' ) ); $errors->add( 'siteid_exists', __( 'The network already exists.' ) );
@ -874,7 +878,7 @@ function populate_network( $network_id = 1, $domain = '', $email = '', $site_nam
if ( $errors->get_error_code() ) if ( $errors->get_error_code() )
return $errors; return $errors;
// set up site tables // Set up site tables.
$template = get_option( 'template' ); $template = get_option( 'template' );
$stylesheet = get_option( 'stylesheet' ); $stylesheet = get_option( 'stylesheet' );
$allowed_themes = array( $stylesheet => true ); $allowed_themes = array( $stylesheet => true );
@ -920,13 +924,13 @@ We hope you enjoy your new site. Thanks!
--The Team @ SITE_NAME' ); --The Team @ SITE_NAME' );
$misc_exts = array( $misc_exts = array(
// images // Images.
'jpg', 'jpeg', 'png', 'gif', 'jpg', 'jpeg', 'png', 'gif',
// video // Video.
'mov', 'avi', 'mpg', '3gp', '3g2', 'mov', 'avi', 'mpg', '3gp', '3g2',
// "audio" // "audio".
'midi', 'mid', 'midi', 'mid',
// misc // Miscellaneous.
'pdf', 'doc', 'ppt', 'odt', 'pptx', 'docx', 'pps', 'ppsx', 'xls', 'xlsx', 'key', 'pdf', 'doc', 'ppt', 'odt', 'pptx', 'docx', 'pps', 'ppsx', 'xls', 'xlsx', 'key',
); );
$audio_exts = wp_get_audio_extensions(); $audio_exts = wp_get_audio_extensions();
@ -981,9 +985,13 @@ We hope you enjoy your new site. Thanks!
} }
$wpdb->query( "INSERT INTO $wpdb->sitemeta ( site_id, meta_key, meta_value ) VALUES " . $insert ); $wpdb->query( "INSERT INTO $wpdb->sitemeta ( site_id, meta_key, meta_value ) VALUES " . $insert );
// When upgrading from single to multisite, assume the current site will become the main site of the network. /*
// When using populate_network() to create another network in an existing multisite environment, * When upgrading from single to multisite, assume the current site will
// skip these steps since the main site of the new network has not yet been created. * become the main site of the network. When using populate_network()
* to create another network in an existing multisite environment, skip
* these steps since the main site of the new network has not yet been
* created.
*/
if ( ! is_multisite() ) { if ( ! is_multisite() ) {
$current_site = new stdClass; $current_site = new stdClass;
$current_site->domain = $domain; $current_site->domain = $domain;

View File

@ -583,10 +583,10 @@ function _list_meta_row( $entry, &$count ) {
if ( is_serialized( $entry['meta_value'] ) ) { if ( is_serialized( $entry['meta_value'] ) ) {
if ( is_serialized_string( $entry['meta_value'] ) ) { if ( is_serialized_string( $entry['meta_value'] ) ) {
// this is a serialized string, so we should display it // This is a serialized string, so we should display it.
$entry['meta_value'] = maybe_unserialize( $entry['meta_value'] ); $entry['meta_value'] = maybe_unserialize( $entry['meta_value'] );
} else { } else {
// this is a serialized array/object so we should NOT display it // This is a serialized array/object so we should NOT display it.
--$count; --$count;
return; return;
} }
@ -716,6 +716,7 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
if ( (int) $tab_index > 0 ) if ( (int) $tab_index > 0 )
$tab_index_attribute = " tabindex=\"$tab_index\""; $tab_index_attribute = " tabindex=\"$tab_index\"";
// todo: Remove this?
// echo '<label for="timestamp" style="display: block;"><input type="checkbox" class="checkbox" name="edit_date" value="1" id="timestamp"'.$tab_index_attribute.' /> '.__( 'Edit timestamp' ).'</label><br />'; // echo '<label for="timestamp" style="display: block;"><input type="checkbox" class="checkbox" name="edit_date" value="1" id="timestamp"'.$tab_index_attribute.' /> '.__( 'Edit timestamp' ).'</label><br />';
$time_adj = current_time('timestamp'); $time_adj = current_time('timestamp');
@ -940,23 +941,30 @@ function add_meta_box( $id, $title, $callback, $screen = null, $context = 'advan
// If core box previously deleted, don't add // If core box previously deleted, don't add
if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] ) if ( false === $wp_meta_boxes[$page][$a_context][$a_priority][$id] )
return; return;
// If box was added with default priority, give it core priority to maintain sort order
/*
* If box was added with default priority, give it core priority to
* maintain sort order.
*/
if ( 'default' == $a_priority ) { if ( 'default' == $a_priority ) {
$wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id]; $wp_meta_boxes[$page][$a_context]['core'][$id] = $wp_meta_boxes[$page][$a_context]['default'][$id];
unset($wp_meta_boxes[$page][$a_context]['default'][$id]); unset($wp_meta_boxes[$page][$a_context]['default'][$id]);
} }
return; return;
} }
// If no priority given and id already present, use existing priority // If no priority given and id already present, use existing priority.
if ( empty($priority) ) { if ( empty($priority) ) {
$priority = $a_priority; $priority = $a_priority;
// else if we're adding to the sorted priority, we don't know the title or callback. Grab them from the previously added context/priority. /*
* Else, if we're adding to the sorted priority, we don't know the title
* or callback. Grab them from the previously added context/priority.
*/
} elseif ( 'sorted' == $priority ) { } elseif ( 'sorted' == $priority ) {
$title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title']; $title = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['title'];
$callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback']; $callback = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['callback'];
$callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args']; $callback_args = $wp_meta_boxes[$page][$a_context][$a_priority][$id]['args'];
} }
// An id can be in only one priority and one context // An id can be in only one priority and one context.
if ( $priority != $a_priority || $context != $a_context ) if ( $priority != $a_priority || $context != $a_context )
unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]); unset($wp_meta_boxes[$page][$a_context][$a_priority][$id]);
} }
@ -1340,23 +1348,25 @@ function add_settings_error( $setting, $code, $message, $type = 'error' ) {
function get_settings_errors( $setting = '', $sanitize = false ) { function get_settings_errors( $setting = '', $sanitize = false ) {
global $wp_settings_errors; global $wp_settings_errors;
// If $sanitize is true, manually re-run the sanitization for this option /*
// This allows the $sanitize_callback from register_setting() to run, adding * If $sanitize is true, manually re-run the sanitization for this option
// any settings errors you want to show by default. * This allows the $sanitize_callback from register_setting() to run, adding
* any settings errors you want to show by default.
*/
if ( $sanitize ) if ( $sanitize )
sanitize_option( $setting, get_option( $setting ) ); sanitize_option( $setting, get_option( $setting ) );
// If settings were passed back from options.php then use them // If settings were passed back from options.php then use them.
if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) { if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
$wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) ); $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
delete_transient( 'settings_errors' ); delete_transient( 'settings_errors' );
} }
// Check global in case errors have been added on this pageload // Check global in case errors have been added on this pageload.
if ( ! count( $wp_settings_errors ) ) if ( ! count( $wp_settings_errors ) )
return array(); return array();
// 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 ) {

View File

@ -1089,7 +1089,10 @@ function _copy_dir($from, $to, $skip_list = array() ) {
return new WP_Error( 'mkdir_failed__copy_dir', __( 'Could not create directory.' ), $to . $filename ); return new WP_Error( 'mkdir_failed__copy_dir', __( 'Could not create directory.' ), $to . $filename );
} }
// generate the $sub_skip_list for the subdirectory as a sub-set of the existing $skip_list /*
* Generate the $sub_skip_list for the subdirectory as a sub-set
* of the existing $skip_list.
*/
$sub_skip_list = array(); $sub_skip_list = array();
foreach ( $skip_list as $skip_item ) { foreach ( $skip_list as $skip_item ) {
if ( 0 === strpos( $skip_item, $filename . '/' ) ) if ( 0 === strpos( $skip_item, $filename . '/' ) )
@ -1125,7 +1128,7 @@ function _redirect_to_about_wordpress( $new_version ) {
if ( 'do-core-upgrade' != $action && 'do-core-reinstall' != $action ) if ( 'do-core-upgrade' != $action && 'do-core-reinstall' != $action )
return; return;
// Load the updated default text localization domain for new strings // Load the updated default text localization domain for new strings.
load_default_textdomain(); load_default_textdomain();
// See do_core_upgrade() // See do_core_upgrade()
@ -1141,7 +1144,7 @@ window.location = 'about.php?updated';
</script> </script>
<?php <?php
// Include admin-footer.php and exit // Include admin-footer.php and exit.
include(ABSPATH . 'wp-admin/admin-footer.php'); include(ABSPATH . 'wp-admin/admin-footer.php');
exit(); exit();
} }

View File

@ -61,8 +61,10 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
if ( ! $public ) if ( ! $public )
update_option('default_pingback_flag', 0); update_option('default_pingback_flag', 0);
// Create default user. If the user already exists, the user tables are /*
// being shared among blogs. Just set the role in that case. * Create default user. If the user already exists, the user tables are
* being shared among blogs. Just set the role in that case.
*/
$user_id = username_exists($user_name); $user_id = username_exists($user_name);
$user_password = trim($user_password); $user_password = trim($user_password);
$email_password = false; $email_password = false;
@ -625,8 +627,10 @@ function upgrade_130() {
$active_plugins = __get_option('active_plugins'); $active_plugins = __get_option('active_plugins');
// If plugins are not stored in an array, they're stored in the old /*
// newline separated format. Convert to new format. * If plugins are not stored in an array, they're stored in the old
* newline separated format. Convert to new format.
*/
if ( !is_array( $active_plugins ) ) { if ( !is_array( $active_plugins ) ) {
$active_plugins = explode("\n", trim($active_plugins)); $active_plugins = explode("\n", trim($active_plugins));
update_option('active_plugins', $active_plugins); update_option('active_plugins', $active_plugins);
@ -716,14 +720,16 @@ function upgrade_160() {
$wpdb->query("ALTER TABLE $wpdb->users DROP $old"); $wpdb->query("ALTER TABLE $wpdb->users DROP $old");
$wpdb->show_errors(); $wpdb->show_errors();
// populate comment_count field of posts table // Populate comment_count field of posts table.
$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" ); $comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
if ( is_array( $comments ) ) if ( is_array( $comments ) )
foreach ($comments as $comment) foreach ($comments as $comment)
$wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) ); $wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
// Some alpha versions used a post status of object instead of attachment and put /*
// the mime type in post_type instead of post_mime_type. * Some alpha versions used a post status of object instead of attachment
* and put the mime type in post_type instead of post_mime_type.
*/
if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) { if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
$objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'"); $objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
foreach ($objects as $object) { foreach ($objects as $object) {
@ -880,8 +886,10 @@ function upgrade_230() {
// < 3570 we used linkcategories. >= 3570 we used categories and link2cat. // < 3570 we used linkcategories. >= 3570 we used categories and link2cat.
if ( $wp_current_db_version < 3570 ) { if ( $wp_current_db_version < 3570 ) {
// Create link_category terms for link categories. Create a map of link cat IDs /*
// to link_category terms. * Create link_category terms for link categories. Create a map of link
* cat IDs to link_category terms.
*/
$link_cat_id_map = array(); $link_cat_id_map = array();
$default_link_cat = 0; $default_link_cat = 0;
$tt_ids = array(); $tt_ids = array();
@ -989,7 +997,7 @@ function upgrade_230_old_tables() {
* @since 2.2.0 * @since 2.2.0
*/ */
function upgrade_old_slugs() { function upgrade_old_slugs() {
// upgrade people who were using the Redirect Old Slugs plugin // Upgrade people who were using the Redirect Old Slugs plugin.
global $wpdb; global $wpdb;
$wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'"); $wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
} }
@ -1304,11 +1312,13 @@ function upgrade_380() {
function upgrade_network() { function upgrade_network() {
global $wp_current_db_version, $wpdb; global $wp_current_db_version, $wpdb;
// Always // Always.
if ( is_main_network() ) { if ( is_main_network() ) {
// Deletes all expired transients. /*
// The multi-table delete syntax is used to delete the transient record from table a, * Deletes all expired transients. The multi-table delete syntax is used
// and the corresponding transient_timeout record from table b. * to delete the transient record from table a, and the corresponding
* transient_timeout record from table b.
*/
$time = time(); $time = time();
$sql = "DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b $sql = "DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b
WHERE a.meta_key LIKE %s WHERE a.meta_key LIKE %s
@ -1318,7 +1328,7 @@ function upgrade_network() {
$wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like ( '_site_transient_timeout_' ) . '%', $time ) ); $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like ( '_site_transient_timeout_' ) . '%', $time ) );
} }
// 2.8 // 2.8.
if ( $wp_current_db_version < 11549 ) { if ( $wp_current_db_version < 11549 ) {
$wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' ); $wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );
$active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' ); $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' );
@ -1415,9 +1425,11 @@ function maybe_create_table($table_name, $create_ddl) {
if ( $wpdb->get_var( $query ) == $table_name ) { if ( $wpdb->get_var( $query ) == $table_name ) {
return true; return true;
} }
//didn't find it try to create it.
// Didn't find it try to create it..
$wpdb->query($create_ddl); $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
// We cannot directly tell that whether this succeeded!
if ( $wpdb->get_var( $query ) == $table_name ) { if ( $wpdb->get_var( $query ) == $table_name ) {
return true; return true;
} }
@ -1478,9 +1490,11 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
return true; return true;
} }
} }
//didn't find it try to create it.
// Didn't find it try to create it.
$wpdb->query($create_ddl); $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
// We cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) { foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
if ($column == $column_name) { if ($column == $column_name) {
return true; return true;
@ -1551,12 +1565,16 @@ function __get_option($setting) {
function deslash($content) { function deslash($content) {
// Note: \\\ inside a regex denotes a single backslash. // Note: \\\ inside a regex denotes a single backslash.
// Replace one or more backslashes followed by a single quote with /*
// a single quote. * Replace one or more backslashes followed by a single quote with
* a single quote.
*/
$content = preg_replace("/\\\+'/", "'", $content); $content = preg_replace("/\\\+'/", "'", $content);
// Replace one or more backslashes followed by a double quote with /*
// a double quote. * Replace one or more backslashes followed by a double quote with
* a double quote.
*/
$content = preg_replace('/\\\+"/', '"', $content); $content = preg_replace('/\\\+"/', '"', $content);
// Replace one or more backslashes with one backslash. // Replace one or more backslashes with one backslash.
@ -1655,24 +1673,27 @@ function dbDelta( $queries = '', $execute = true ) {
if ( ! $tablefields ) if ( ! $tablefields )
continue; continue;
// Clear the field and index arrays // Clear the field and index arrays.
$cfields = $indices = array(); $cfields = $indices = array();
// Get all of the field names in the query from between the parens
// Get all of the field names in the query from between the parentheses.
preg_match("|\((.*)\)|ms", $qry, $match2); preg_match("|\((.*)\)|ms", $qry, $match2);
$qryline = trim($match2[1]); $qryline = trim($match2[1]);
// Separate field lines into an array // Separate field lines into an array.
$flds = explode("\n", $qryline); $flds = explode("\n", $qryline);
// todo: Remove this?
//echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>"; //echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
// For every field line specified in the query // For every field line specified in the query.
foreach ($flds as $fld) { foreach ($flds as $fld) {
// Extract the field name
// Extract the field name.
preg_match("|^([^ ]*)|", trim($fld), $fvals); preg_match("|^([^ ]*)|", trim($fld), $fvals);
$fieldname = trim( $fvals[1], '`' ); $fieldname = trim( $fvals[1], '`' );
// Verify the found field name // Verify the found field name.
$validfield = true; $validfield = true;
switch (strtolower($fieldname)) { switch (strtolower($fieldname)) {
case '': case '':
@ -1687,17 +1708,19 @@ function dbDelta( $queries = '', $execute = true ) {
} }
$fld = trim($fld); $fld = trim($fld);
// If it's a valid field, add it to the field array // If it's a valid field, add it to the field array.
if ($validfield) { if ($validfield) {
$cfields[strtolower($fieldname)] = trim($fld, ", \n"); $cfields[strtolower($fieldname)] = trim($fld, ", \n");
} }
} }
// For every field in the table // For every field in the table.
foreach ($tablefields as $tablefield) { foreach ($tablefields as $tablefield) {
// If the table field exists in the field array...
// If the table field exists in the field array ...
if (array_key_exists(strtolower($tablefield->Field), $cfields)) { if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
// Get the field type from the query
// Get the field type from the query.
preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches); preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
$fieldtype = $matches[1]; $fieldtype = $matches[1];
@ -1709,6 +1732,7 @@ function dbDelta( $queries = '', $execute = true ) {
} }
// Get the default value from the array // Get the default value from the array
// todo: Remove this?
//echo "{$cfields[strtolower($tablefield->Field)]}<br>"; //echo "{$cfields[strtolower($tablefield->Field)]}<br>";
if (preg_match("| DEFAULT '(.*?)'|i", $cfields[strtolower($tablefield->Field)], $matches)) { if (preg_match("| DEFAULT '(.*?)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
$default_value = $matches[1]; $default_value = $matches[1];
@ -1719,39 +1743,40 @@ function dbDelta( $queries = '', $execute = true ) {
} }
} }
// Remove the field from the array (so it's not added) // Remove the field from the array (so it's not added).
unset($cfields[strtolower($tablefield->Field)]); unset($cfields[strtolower($tablefield->Field)]);
} else { } else {
// This field exists in the table, but not in the creation queries? // This field exists in the table, but not in the creation queries?
} }
} }
// For every remaining field specified for the table // For every remaining field specified for the table.
foreach ($cfields as $fieldname => $fielddef) { foreach ($cfields as $fieldname => $fielddef) {
// Push a query line into $cqueries that adds the field to that table // Push a query line into $cqueries that adds the field to that table.
$cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef"; $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
$for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname; $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
} }
// Index stuff goes here // Index stuff goes here. Fetch the table index structure from the database.
// Fetch the table index structure from the database
$tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};"); $tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
if ($tableindices) { if ($tableindices) {
// Clear the index array // Clear the index array.
unset($index_ary); unset($index_ary);
// For every index in the table // For every index in the table.
foreach ($tableindices as $tableindex) { foreach ($tableindices as $tableindex) {
// Add the index to the index data array
// Add the index to the index data array.
$keyname = $tableindex->Key_name; $keyname = $tableindex->Key_name;
$index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part); $index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
$index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false; $index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
} }
// For each actual index in the index array // For each actual index in the index array.
foreach ($index_ary as $index_name => $index_data) { foreach ($index_ary as $index_name => $index_data) {
// Build a create string to compare to the query
// Build a create string to compare to the query.
$index_string = ''; $index_string = '';
if ($index_name == 'PRIMARY') { if ($index_name == 'PRIMARY') {
$index_string .= 'PRIMARY '; $index_string .= 'PRIMARY ';
@ -1763,39 +1788,44 @@ function dbDelta( $queries = '', $execute = true ) {
$index_string .= $index_name; $index_string .= $index_name;
} }
$index_columns = ''; $index_columns = '';
// For each column in the index
// For each column in the index.
foreach ($index_data['columns'] as $column_data) { foreach ($index_data['columns'] as $column_data) {
if ($index_columns != '') $index_columns .= ','; if ($index_columns != '') $index_columns .= ',';
// Add the field to the column list string
// Add the field to the column list string.
$index_columns .= $column_data['fieldname']; $index_columns .= $column_data['fieldname'];
if ($column_data['subpart'] != '') { if ($column_data['subpart'] != '') {
$index_columns .= '('.$column_data['subpart'].')'; $index_columns .= '('.$column_data['subpart'].')';
} }
} }
// Add the column list to the index create string // Add the column list to the index create string.
$index_string .= ' ('.$index_columns.')'; $index_string .= ' ('.$index_columns.')';
if (!(($aindex = array_search($index_string, $indices)) === false)) { if (!(($aindex = array_search($index_string, $indices)) === false)) {
unset($indices[$aindex]); unset($indices[$aindex]);
// todo: Remove this?
//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n"; //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
} }
// todo: Remove this?
//else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n"; //else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n";
} }
} }
// For every remaining index specified for the table // For every remaining index specified for the table.
foreach ( (array) $indices as $index ) { foreach ( (array) $indices as $index ) {
// Push a query line into $cqueries that adds the index to that table // Push a query line into $cqueries that adds the index to that table.
$cqueries[] = "ALTER TABLE {$table} ADD $index"; $cqueries[] = "ALTER TABLE {$table} ADD $index";
$for_update[] = 'Added index ' . $table . ' ' . $index; $for_update[] = 'Added index ' . $table . ' ' . $index;
} }
// Remove the original table creation query from processing // Remove the original table creation query from processing.
unset( $cqueries[ $table ], $for_update[ $table ] ); unset( $cqueries[ $table ], $for_update[ $table ] );
} }
$allqueries = array_merge($cqueries, $iqueries); $allqueries = array_merge($cqueries, $iqueries);
if ($execute) { if ($execute) {
foreach ($allqueries as $query) { foreach ($allqueries as $query) {
// todo: Remove this?
//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">".print_r($query, true)."</pre>\n"; //echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">".print_r($query, true)."</pre>\n";
$wpdb->query($query); $wpdb->query($query);
} }
@ -1847,9 +1877,10 @@ function make_site_theme_from_oldschool($theme_name, $template) {
if (! file_exists("$home_path/index.php")) if (! file_exists("$home_path/index.php"))
return false; return false;
// Copy files from the old locations to the site theme. /*
// TODO: This does not copy arbitrary include dependencies. Only the * Copy files from the old locations to the site theme.
// standard WP files are copied. * TODO: This does not copy arbitrary include dependencies. Only the standard WP files are copied.
*/
$files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php'); $files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php');
foreach ($files as $oldfile => $newfile) { foreach ($files as $oldfile => $newfile) {
@ -1858,12 +1889,15 @@ function make_site_theme_from_oldschool($theme_name, $template) {
else else
$oldpath = ABSPATH; $oldpath = ABSPATH;
if ($oldfile == 'index.php') { // Check to make sure it's not a new index // Check to make sure it's not a new index.
if ($oldfile == 'index.php') {
$index = implode('', file("$oldpath/$oldfile")); $index = implode('', file("$oldpath/$oldfile"));
if (strpos($index, 'WP_USE_THEMES') !== false) { if (strpos($index, 'WP_USE_THEMES') !== false) {
if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile")) if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))
return false; return false;
continue; // Don't copy anything
// Don't copy anything.
continue;
} }
} }

View File

@ -390,10 +390,11 @@ add_action('admin_init', 'default_password_nag_handler');
*/ */
function default_password_nag_handler($errors = false) { function default_password_nag_handler($errors = false) {
global $user_ID; global $user_ID;
if ( ! get_user_option('default_password_nag') ) //Short circuit it. // Short-circuit it.
if ( ! get_user_option('default_password_nag') )
return; return;
//get_user_setting = JS saved UI setting. else no-js-fallback code. // get_user_setting = JS saved UI setting. else no-js-fallback code.
if ( 'hide' == get_user_setting('default_password_nag') || isset($_GET['default_password_nag']) && '0' == $_GET['default_password_nag'] ) { if ( 'hide' == get_user_setting('default_password_nag') || isset($_GET['default_password_nag']) && '0' == $_GET['default_password_nag'] ) {
delete_user_setting('default_password_nag'); delete_user_setting('default_password_nag');
update_user_option($user_ID, 'default_password_nag', false, true); update_user_option($user_ID, 'default_password_nag', false, true);
@ -401,28 +402,33 @@ function default_password_nag_handler($errors = false) {
} }
add_action('profile_update', 'default_password_nag_edit_user', 10, 2); add_action('profile_update', 'default_password_nag_edit_user', 10, 2);
/** /**
* @since 2.8.0 * @since 2.8.0
*/ */
function default_password_nag_edit_user($user_ID, $old_data) { function default_password_nag_edit_user($user_ID, $old_data) {
if ( ! get_user_option('default_password_nag', $user_ID) ) //Short circuit it. // Short-circuit it.
if ( ! get_user_option('default_password_nag', $user_ID) )
return; return;
$new_data = get_userdata($user_ID); $new_data = get_userdata($user_ID);
if ( $new_data->user_pass != $old_data->user_pass ) { //Remove the nag if the password has been changed. // Remove the nag if the password has been changed.
if ( $new_data->user_pass != $old_data->user_pass ) {
delete_user_setting('default_password_nag'); delete_user_setting('default_password_nag');
update_user_option($user_ID, 'default_password_nag', false, true); update_user_option($user_ID, 'default_password_nag', false, true);
} }
} }
add_action('admin_notices', 'default_password_nag'); add_action('admin_notices', 'default_password_nag');
/** /**
* @since 2.8.0 * @since 2.8.0
*/ */
function default_password_nag() { function default_password_nag() {
global $pagenow; global $pagenow;
if ( 'profile.php' == $pagenow || ! get_user_option('default_password_nag') ) //Short circuit it. // Short-circuit it.
if ( 'profile.php' == $pagenow || ! get_user_option('default_password_nag') )
return; return;
echo '<div class="error default-password-nag">'; echo '<div class="error default-password-nag">';

View File

@ -173,11 +173,14 @@ function wp_widget_control( $sidebar_args ) {
$query_arg['key'] = $key; $query_arg['key'] = $key;
} }
// We aren't showing a widget control, we're outputting a template for a multi-widget control /*
* We aren't showing a widget control, we're outputting a template
* for a multi-widget control.
*/
if ( isset($sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) { if ( isset($sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) {
// number == -1 implies a template where id numbers are replaced by a generic '__i__' // number == -1 implies a template where id numbers are replaced by a generic '__i__'
$control['params'][0]['number'] = -1; $control['params'][0]['number'] = -1;
// with id_base widget id's are constructed like {$id_base}-{$id_number} // With id_base widget id's are constructed like {$id_base}-{$id_number}.
if ( isset($control['id_base']) ) if ( isset($control['id_base']) )
$id_format = $control['id_base'] . '-__i__'; $id_format = $control['id_base'] . '-__i__';
} }

View File

@ -57,9 +57,10 @@ function maybe_create_table($table_name, $create_ddl) {
return true; return true;
} }
} }
//didn't find it try to create it. // Didn't find it, so try to create it.
$wpdb->query($create_ddl); $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
// We cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) { foreach ($wpdb->get_col("SHOW TABLES",0) as $table ) {
if ($table == $table_name) { if ($table == $table_name) {
return true; return true;
@ -90,9 +91,11 @@ function maybe_add_column($table_name, $column_name, $create_ddl) {
return true; return true;
} }
} }
//didn't find it try to create it.
// Didn't find it, so try to create it.
$wpdb->query($create_ddl); $wpdb->query($create_ddl);
// we cannot directly tell that whether this succeeded!
// We cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) { if ($column == $column_name) {
return true; return true;
@ -118,9 +121,11 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
global $wpdb; global $wpdb;
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) { if ($column == $column_name) {
//found it try to drop it.
// Found it, so try to drop it.
$wpdb->query($drop_ddl); $wpdb->query($drop_ddl);
// we cannot directly tell that whether this succeeded!
// We cannot directly tell that whether this succeeded!
foreach ($wpdb->get_col("DESC $table_name",0) as $column ) { foreach ($wpdb->get_col("DESC $table_name",0) as $column ) {
if ($column == $column_name) { if ($column == $column_name) {
return false; return false;
@ -128,7 +133,7 @@ function maybe_drop_column($table_name, $column_name, $drop_ddl) {
} }
} }
} }
// else didn't find it // Else didn't find it.
return true; return true;
} }
@ -167,7 +172,8 @@ function check_column($table_name, $col_name, $col_type, $is_null = null, $key =
foreach ($results as $row ) { foreach ($results as $row ) {
if ($row->Field == $col_name) { if ($row->Field == $col_name) {
// got our column, check the params
// Got our column, check the params.
if (($col_type != null) && ($row->Type != $col_type)) { if (($col_type != null) && ($row->Type != $col_type)) {
++$diffs; ++$diffs;
} }

View File

@ -222,7 +222,8 @@ switch($step) {
$admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : ''; $admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : '';
$admin_email = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : ''; $admin_email = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
$public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 0; $public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 0;
// check e-mail address
// Check e-mail address.
$error = false; $error = false;
if ( empty( $user_name ) ) { if ( empty( $user_name ) ) {
// TODO: poka-yoke // TODO: poka-yoke

View File

@ -45,13 +45,14 @@ function startElement($parser, $tagName, $attrs) {
if ( isset( $attrs['HTMLURL'] ) ) { if ( isset( $attrs['HTMLURL'] ) ) {
$url = $attrs['HTMLURL']; $url = $attrs['HTMLURL'];
} }
// save the data away.
// Save the data away.
$names[] = $name; $names[] = $name;
$urls[] = $url; $urls[] = $url;
$targets[] = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] : ''; $targets[] = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] : '';
$feeds[] = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] : ''; $feeds[] = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] : '';
$descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] : ''; $descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] : '';
} // end if outline } // End if outline.
} }
/** /**
@ -64,7 +65,7 @@ function startElement($parser, $tagName, $attrs) {
* @param string $tagName XML tag name. * @param string $tagName XML tag name.
*/ */
function endElement($parser, $tagName) { function endElement($parser, $tagName) {
// nothing to do. // Nothing to do.
} }
// Create an XML parser // Create an XML parser

View File

@ -30,7 +30,7 @@ switch ($action) {
case 'deletebookmarks' : case 'deletebookmarks' :
check_admin_referer('bulk-bookmarks'); check_admin_referer('bulk-bookmarks');
//for each link id (in $linkcheck[]) change category to selected value // For each link id (in $linkcheck[]) change category to selected value.
if (count($linkcheck) == 0) { if (count($linkcheck) == 0) {
wp_redirect($this_file); wp_redirect($this_file);
exit; exit;
@ -50,14 +50,16 @@ switch ($action) {
case 'move' : case 'move' :
check_admin_referer('bulk-bookmarks'); check_admin_referer('bulk-bookmarks');
//for each link id (in $linkcheck[]) change category to selected value // For each link id (in $linkcheck[]) change category to selected value.
if (count($linkcheck) == 0) { if (count($linkcheck) == 0) {
wp_redirect($this_file); wp_redirect($this_file);
exit; exit;
} }
$all_links = join(',', $linkcheck); $all_links = join(',', $linkcheck);
// should now have an array of links we can change /*
//$q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)"); * Should now have an array of links we can change:
* $q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
*/
wp_redirect($this_file); wp_redirect($this_file);
exit; exit;

View File

@ -30,14 +30,14 @@ wp_enqueue_script( 'media-gallery' );
$ID = isset($ID) ? (int) $ID : 0; $ID = isset($ID) ? (int) $ID : 0;
$post_id = isset($post_id)? (int) $post_id : 0; $post_id = isset($post_id)? (int) $post_id : 0;
// Require an ID for the edit screen // Require an ID for the edit screen.
if ( isset($action) && $action == 'edit' && !$ID ) if ( isset($action) && $action == 'edit' && !$ID )
wp_die( __( 'Cheatin&#8217; uh?' ) ); wp_die( __( 'Cheatin&#8217; uh?' ) );
if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) ) if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) )
wp_die( __( 'Cheatin&#8217; uh?' ) ); wp_die( __( 'Cheatin&#8217; uh?' ) );
// upload type: image, video, file, ..? // Upload type: image, video, file, ..?
if ( isset($_GET['type']) ) { if ( isset($_GET['type']) ) {
$type = strval($_GET['type']); $type = strval($_GET['type']);
} else { } else {
@ -52,7 +52,7 @@ if ( isset($action) && $action == 'edit' && !$ID )
$type = apply_filters( 'media_upload_default_type', 'file' ); $type = apply_filters( 'media_upload_default_type', 'file' );
} }
// tab: gallery, library, or type-specific // Tab: gallery, library, or type-specific.
if ( isset($_GET['tab']) ) { if ( isset($_GET['tab']) ) {
$tab = strval($_GET['tab']); $tab = strval($_GET['tab']);
} else { } else {
@ -68,7 +68,7 @@ if ( isset($action) && $action == 'edit' && !$ID )
$body_id = 'media-upload'; $body_id = 'media-upload';
// let the action code decide how to handle the request // Let the action code decide how to handle the request.
if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_upload_tabs() ) ) { if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_upload_tabs() ) ) {
/** /**
* Fires inside specific upload-type views in the legacy (pre-3.5.0) * Fires inside specific upload-type views in the legacy (pre-3.5.0)

View File

@ -40,7 +40,7 @@ case 'editattachment' :
exit; exit;
} }
// no break // No break.
case 'edit' : case 'edit' :
$title = __('Edit Media'); $title = __('Edit Media');

View File

@ -80,9 +80,12 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
$img = $img_style = ''; $img = $img_style = '';
$img_class = ' dashicons-before'; $img_class = ' dashicons-before';
// if the string 'none' (previously 'div') is passed instead of an URL, don't output the default menu image /*
// so an icon can be added to div.wp-menu-image as background with CSS. * If the string 'none' (previously 'div') is passed instead of an URL, don't output
// Dashicons and base64-encoded data:image/svg_xml URIs are also handled as special cases. * the default menu image so an icon can be added to div.wp-menu-image as background
* with CSS. Dashicons and base64-encoded data:image/svg_xml URIs are also handled
* as special cases.
*/
if ( ! empty( $item[6] ) ) { if ( ! empty( $item[6] ) ) {
$img = '<img src="' . $item[6] . '" alt="" />'; $img = '<img src="' . $item[6] . '" alt="" />';

View File

@ -121,7 +121,10 @@ foreach ( (array) get_post_types( array('show_ui' => true, '_builtin' => false,
$ptype_class = 'post'; $ptype_class = 'post';
} }
// if $ptype_menu_position is already populated or will be populated by a hard-coded value below, increment the position. /*
* If $ptype_menu_position is already populated or will be populated
* by a hard-coded value below, increment the position.
*/
$core_menu_positions = array(59, 60, 65, 70, 75, 80, 85, 99); $core_menu_positions = array(59, 60, 65, 70, 75, 80, 85, 99);
while ( isset($menu[$ptype_menu_position]) || in_array($ptype_menu_position, $core_menu_positions) ) while ( isset($menu[$ptype_menu_position]) || in_array($ptype_menu_position, $core_menu_positions) )
$ptype_menu_position++; $ptype_menu_position++;

View File

@ -53,7 +53,8 @@ switch ( $action ) {
wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] ); wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] );
break; break;
case 'move-down-menu-item' : case 'move-down-menu-item' :
// moving down a menu item is the same as moving up the next in order
// Moving down a menu item is the same as moving up the next in order.
check_admin_referer( 'move-menu_item' ); check_admin_referer( 'move-menu_item' );
$menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0; $menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0;
if ( is_nav_menu_item( $menu_item_id ) ) { if ( is_nav_menu_item( $menu_item_id ) ) {
@ -63,7 +64,7 @@ switch ( $action ) {
$ordered_menu_items = wp_get_nav_menu_items( $menu_id ); $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
$menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) ); $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
// set up the data we need in one pass through the array of menu items // Set up the data we need in one pass through the array of menu items.
$dbids_to_orders = array(); $dbids_to_orders = array();
$orders_to_dbids = array(); $orders_to_dbids = array();
foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) { foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
@ -75,14 +76,14 @@ switch ( $action ) {
} }
} }
// get next in order // Get next in order.
if ( if (
isset( $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1] ) isset( $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1] )
) { ) {
$next_item_id = $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1]; $next_item_id = $orders_to_dbids[$dbids_to_orders[$menu_item_id] + 1];
$next_item_data = (array) wp_setup_nav_menu_item( get_post( $next_item_id ) ); $next_item_data = (array) wp_setup_nav_menu_item( get_post( $next_item_id ) );
// if not siblings of same parent, bubble menu item up but keep order // If not siblings of same parent, bubble menu item up but keep order.
if ( if (
! empty( $menu_item_data['menu_item_parent'] ) && ! empty( $menu_item_data['menu_item_parent'] ) &&
( (
@ -102,7 +103,7 @@ switch ( $action ) {
} }
// make menu item a child of its next sibling // Make menu item a child of its next sibling.
} else { } else {
$next_item_data['menu_order'] = $next_item_data['menu_order'] - 1; $next_item_data['menu_order'] = $next_item_data['menu_order'] - 1;
$menu_item_data['menu_order'] = $menu_item_data['menu_order'] + 1; $menu_item_data['menu_order'] = $menu_item_data['menu_order'] + 1;
@ -114,7 +115,7 @@ switch ( $action ) {
wp_update_post($next_item_data); wp_update_post($next_item_data);
} }
// 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( $menu_item_data['menu_item_parent'], $orders_to_dbids )
@ -136,7 +137,7 @@ switch ( $action ) {
$ordered_menu_items = wp_get_nav_menu_items( $menu_id ); $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
$menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) ); $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
// set up the data we need in one pass through the array of menu items // Set up the data we need in one pass through the array of menu items.
$dbids_to_orders = array(); $dbids_to_orders = array();
$orders_to_dbids = array(); $orders_to_dbids = array();
foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) { foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) {
@ -148,10 +149,10 @@ switch ( $action ) {
} }
} }
// if this menu item is not first // If this menu item is not first.
if ( ! empty( $dbids_to_orders[$menu_item_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ) { if ( ! empty( $dbids_to_orders[$menu_item_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ) {
// 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( $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ) ) &&
@ -164,7 +165,10 @@ switch ( $action ) {
if ( ! is_wp_error( $parent_object ) ) { if ( ! is_wp_error( $parent_object ) ) {
$parent_data = (array) $parent_object; $parent_data = (array) $parent_object;
// if there is something before the parent and parent a child of it, make menu item a child also of it /*
* If there is something before the parent and parent a child of it,
* make menu item a child also of it.
*/
if ( if (
! empty( $dbids_to_orders[$parent_db_id] ) && ! empty( $dbids_to_orders[$parent_db_id] ) &&
! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) &&
@ -172,7 +176,10 @@ switch ( $action ) {
) { ) {
$menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent']; $menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent'];
// else if there is something before parent and parent not a child of it, make menu item a child of that something's parent /*
* Else if there is something before parent and parent not a child of it,
* make menu item a child of that something's parent
*/
} elseif ( } elseif (
! empty( $dbids_to_orders[$parent_db_id] ) && ! empty( $dbids_to_orders[$parent_db_id] ) &&
! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] )
@ -183,24 +190,24 @@ switch ( $action ) {
else else
$menu_item_data['menu_item_parent'] = 0; $menu_item_data['menu_item_parent'] = 0;
// else there isn't something before the parent // Else there isn't something before the parent.
} else { } else {
$menu_item_data['menu_item_parent'] = 0; $menu_item_data['menu_item_parent'] = 0;
} }
// set former parent's [menu_order] to that of menu-item's // Set former parent's [menu_order] to that of menu-item's.
$parent_data['menu_order'] = $parent_data['menu_order'] + 1; $parent_data['menu_order'] = $parent_data['menu_order'] + 1;
// set menu-item's [menu_order] to that of former parent // Set menu-item's [menu_order] to that of former parent.
$menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1; $menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1;
// save changes // Save changes.
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'] );
wp_update_post($menu_item_data); wp_update_post($menu_item_data);
wp_update_post($parent_data); wp_update_post($parent_data);
} }
// else this menu item is not a child of the previous // Else this menu item is not a child of the previous.
} 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'] ) ||
@ -208,7 +215,7 @@ switch ( $action ) {
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']
) { ) {
// just make it a child of the previous; keep the order // Just make it a child of the previous; keep the order.
$menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1]; $menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1];
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'] );
wp_update_post($menu_item_data); wp_update_post($menu_item_data);
@ -232,7 +239,7 @@ switch ( $action ) {
if ( is_nav_menu( $nav_menu_selected_id ) ) { if ( is_nav_menu( $nav_menu_selected_id ) ) {
$deletion = wp_delete_nav_menu( $nav_menu_selected_id ); $deletion = wp_delete_nav_menu( $nav_menu_selected_id );
} else { } else {
// Reset the selected menu // Reset the selected menu.
$nav_menu_selected_id = 0; $nav_menu_selected_id = 0;
unset( $_REQUEST['menu'] ); unset( $_REQUEST['menu'] );
} }
@ -266,22 +273,22 @@ switch ( $action ) {
case 'update': case 'update':
check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' ); check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
// Remove menu locations that have been unchecked // Remove menu locations that have been unchecked.
foreach ( $locations as $location => $description ) { foreach ( $locations as $location => $description ) {
if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id ) if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id )
unset( $menu_locations[ $location ] ); unset( $menu_locations[ $location ] );
} }
// Merge new and existing menu locations if any new ones are set // Merge new and existing menu locations if any new ones are set.
if ( isset( $_POST['menu-locations'] ) ) { if ( isset( $_POST['menu-locations'] ) ) {
$new_menu_locations = array_map( 'absint', $_POST['menu-locations'] ); $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] );
$menu_locations = array_merge( $menu_locations, $new_menu_locations ); $menu_locations = array_merge( $menu_locations, $new_menu_locations );
} }
// Set menu locations // Set menu locations.
set_theme_mod( 'nav_menu_locations', $menu_locations ); set_theme_mod( 'nav_menu_locations', $menu_locations );
// Add Menu // Add Menu.
if ( 0 == $nav_menu_selected_id ) { if ( 0 == $nav_menu_selected_id ) {
$new_menu_title = trim( esc_html( $_POST['menu-name'] ) ); $new_menu_title = trim( esc_html( $_POST['menu-name'] ) );
@ -314,6 +321,7 @@ switch ( $action ) {
$menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id; $menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id;
set_theme_mod( 'nav_menu_locations', $menu_locations ); set_theme_mod( 'nav_menu_locations', $menu_locations );
} }
// $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>'; // $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>';
wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) ); wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) );
exit(); exit();
@ -322,7 +330,7 @@ switch ( $action ) {
$messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>'; $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>';
} }
// Update existing menu // Update existing menu.
} else { } else {
$_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id );
@ -344,7 +352,7 @@ switch ( $action ) {
} }
} }
// Update menu items // Update menu items.
if ( ! is_wp_error( $_menu_object ) ) { if ( ! is_wp_error( $_menu_object ) ) {
$messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) ); $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) );
} }
@ -371,7 +379,7 @@ switch ( $action ) {
break; break;
} }
// Get all nav menus // Get all nav menus.
$nav_menus = wp_get_nav_menus( array('orderby' => 'name') ); $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
$menu_count = count( $nav_menus ); $menu_count = count( $nav_menus );
@ -380,7 +388,10 @@ $add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : fals
$locations_screen = ( isset( $_GET['action'] ) && 'locations' == $_GET['action'] ) ? true : false; $locations_screen = ( isset( $_GET['action'] ) && 'locations' == $_GET['action'] ) ? true : false;
// If we have one theme location, and zero menus, we take them right into editing their first menu /*
* If we have one theme location, and zero menus, we take them right
* into editing their first menu.
*/
$page_count = wp_count_posts( 'page' ); $page_count = wp_count_posts( 'page' );
$one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false; $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false;
@ -404,32 +415,35 @@ $nav_menus_l10n = array(
); );
wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n ); wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n );
// Redirect to add screen if there are no menus and this users has either zero, or more than 1 theme locations /*
* Redirect to add screen if there are no menus and this users has either zero,
* or more than 1 theme locations.
*/
if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus ) if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus )
wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) ); wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) );
// Get recently edited nav menu // Get recently edited nav menu.
$recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) ); $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) ) if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) )
$recently_edited = $nav_menu_selected_id; $recently_edited = $nav_menu_selected_id;
// Use $recently_edited if none are selected // Use $recently_edited if none are selected.
if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) ) if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
$nav_menu_selected_id = $recently_edited; $nav_menu_selected_id = $recently_edited;
// On deletion of menu, if another menu exists, show it // On deletion of menu, if another menu exists, show it.
if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] ) if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] )
$nav_menu_selected_id = $nav_menus[0]->term_id; $nav_menu_selected_id = $nav_menus[0]->term_id;
// Set $nav_menu_selected_id to 0 if no menus // Set $nav_menu_selected_id to 0 if no menus.
if ( $one_theme_location_no_menus ) { if ( $one_theme_location_no_menus ) {
$nav_menu_selected_id = 0; $nav_menu_selected_id = 0;
} elseif ( empty( $nav_menu_selected_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) { } elseif ( empty( $nav_menu_selected_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) {
// if we have no selection yet, and we have menus, set to the first one in the list // if we have no selection yet, and we have menus, set to the first one in the list.
$nav_menu_selected_id = $nav_menus[0]->term_id; $nav_menu_selected_id = $nav_menus[0]->term_id;
} }
// Update the user's setting // Update the user's setting.
if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) ) if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) )
update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id ); update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id );
@ -439,23 +453,25 @@ if ( ! $nav_menu_selected_title && is_nav_menu( $nav_menu_selected_id ) ) {
$nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : ''; $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : '';
} }
// Generate truncated menu names // Generate truncated menu names.
foreach( (array) $nav_menus as $key => $_nav_menu ) { foreach( (array) $nav_menus as $key => $_nav_menu ) {
$nav_menus[$key]->truncated_name = wp_html_excerpt( $_nav_menu->name, 40, '&hellip;' ); $nav_menus[$key]->truncated_name = wp_html_excerpt( $_nav_menu->name, 40, '&hellip;' );
} }
// Retrieve menu locations // Retrieve menu locations.
if ( current_theme_supports( 'menus' ) ) { if ( current_theme_supports( 'menus' ) ) {
$locations = get_registered_nav_menus(); $locations = get_registered_nav_menus();
$menu_locations = get_nav_menu_locations(); $menu_locations = get_nav_menu_locations();
} }
// Ensure the user will be able to scroll horizontally /*
// by adding a class for the max menu depth. * Ensure the user will be able to scroll horizontally
* by adding a class for the max menu depth.
*/
global $_wp_nav_menu_max_depth; global $_wp_nav_menu_max_depth;
$_wp_nav_menu_max_depth = 0; $_wp_nav_menu_max_depth = 0;
// Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth // Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth.
if ( is_nav_menu( $nav_menu_selected_id ) ) { if ( is_nav_menu( $nav_menu_selected_id ) ) {
$menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) ); $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) );
$edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id ); $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
@ -510,7 +526,7 @@ if ( ! $locations_screen ) : // Main tab
'title' => __( 'Editing Menus' ), 'title' => __( 'Editing Menus' ),
'content' => $editing_menus 'content' => $editing_menus
) ); ) );
else : // Locations Tab else : // Locations Tab.
$locations_overview = '<p>' . __( 'This screen is used for globally assigning menus to locations defined by your theme.' ) . '</p>'; $locations_overview = '<p>' . __( 'This screen is used for globally assigning menus to locations defined by your theme.' ) . '</p>';
$locations_overview .= '<ul><li>' . __( 'To assign menus to one or more theme locations, <strong>select a menu from each location&#8217;s drop down.</strong> When you&#8217;re finished, <strong>click Save Changes</strong>' ) . '</li>'; $locations_overview .= '<ul><li>' . __( 'To assign menus to one or more theme locations, <strong>select a menu from each location&#8217;s drop down.</strong> When you&#8217;re finished, <strong>click Save Changes</strong>' ) . '</li>';
$locations_overview .= '<li>' . __( 'To edit a menu currently assigned to a theme location, <strong>click the adjacent &#8217;Edit&#8217; link</strong>' ) . '</li>'; $locations_overview .= '<li>' . __( 'To edit a menu currently assigned to a theme location, <strong>click the adjacent &#8217;Edit&#8217; link</strong>' ) . '</li>';
@ -529,7 +545,7 @@ get_current_screen()->set_help_sidebar(
'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>' '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
); );
// Get the admin header // Get the admin header.
require_once( ABSPATH . 'wp-admin/admin-header.php' ); require_once( ABSPATH . 'wp-admin/admin-header.php' );
?> ?>
<div class="wrap"> <div class="wrap">
@ -644,7 +660,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
*/ */
$assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) ); $assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) );
// 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 ) ) {
printf( ' (%1$s%2$s)', printf( ' (%1$s%2$s)',
implode( ', ', $assigned_locations ), implode( ', ', $assigned_locations ),

View File

@ -533,7 +533,7 @@ if ( $_POST ) {
check_admin_referer( 'install-network-1' ); check_admin_referer( 'install-network-1' );
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
// create network tables // Create network tables.
install_network(); install_network();
$base = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH ); $base = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH );
$subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false; $subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false;

View File

@ -59,10 +59,10 @@ if ( isset($_REQUEST['action']) && 'update-site' == $_REQUEST['action'] ) {
update_option( 'home', $blog_address ); update_option( 'home', $blog_address );
} }
// rewrite rules can't be flushed during switch to blog // Rewrite rules can't be flushed during switch to blog.
delete_option( 'rewrite_rules' ); delete_option( 'rewrite_rules' );
// update blogs table // Update blogs table.
$blog_data = wp_unslash( $_POST['blog'] ); $blog_data = wp_unslash( $_POST['blog'] );
$existing_details = get_blog_details( $id, false ); $existing_details = get_blog_details( $id, false );
$blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' ); $blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );

View File

@ -216,7 +216,7 @@ foreach ( (array) $options as $option ) :
continue; continue;
if ( is_serialized( $option->option_value ) ) { if ( is_serialized( $option->option_value ) ) {
if ( is_serialized_string( $option->option_value ) ) { if ( is_serialized_string( $option->option_value ) ) {
// this is a serialized string, so we should display it // This is a serialized string, so we should display it.
$value = maybe_unserialize( $option->option_value ); $value = maybe_unserialize( $option->option_value );
$options_to_update[] = $option->option_name; $options_to_update[] = $option->option_name;
$class = 'all-options'; $class = 'all-options';

View File

@ -40,7 +40,7 @@ function press_it() {
$upload = false; $upload = false;
if ( !empty($_POST['photo_src']) && current_user_can('upload_files') ) { if ( !empty($_POST['photo_src']) && current_user_can('upload_files') ) {
foreach( (array) $_POST['photo_src'] as $key => $image) { foreach( (array) $_POST['photo_src'] as $key => $image) {
// see if files exist in content - we don't want to upload non-used selected files. // See if files exist in content - we don't want to upload non-used selected files.
if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) { if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) {
$desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : ''; $desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : '';
$upload = media_sideload_image($image, $post_ID, $desc); $upload = media_sideload_image($image, $post_ID, $desc);
@ -51,7 +51,7 @@ function press_it() {
} }
} }
} }
// set the post_content and status // Set the post_content and status.
$post['post_content'] = $content; $post['post_content'] = $content;
if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) ) if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'publish'; $post['post_status'] = 'publish';
@ -60,12 +60,12 @@ function press_it() {
else else
$post['post_status'] = 'draft'; $post['post_status'] = 'draft';
// error handling for media_sideload // Error handling for media_sideload.
if ( is_wp_error($upload) ) { if ( is_wp_error($upload) ) {
wp_delete_post($post_ID); wp_delete_post($post_ID);
wp_die($upload); wp_die($upload);
} else { } else {
// Post formats // Post formats.
if ( isset( $_POST['post_format'] ) ) { if ( isset( $_POST['post_format'] ) ) {
if ( current_theme_supports( 'post-formats', $_POST['post_format'] ) ) if ( current_theme_supports( 'post-formats', $_POST['post_format'] ) )
set_post_format( $post_ID, $_POST['post_format'] ); set_post_format( $post_ID, $_POST['post_format'] );
@ -181,9 +181,10 @@ if ( !empty($_REQUEST['ajax']) ) {
return ''; return '';
$sources = array(); $sources = array();
foreach ($matches[3] as $src) { foreach ($matches[3] as $src) {
// if no http in url
// If no http in URL.
if (strpos($src, 'http') === false) if (strpos($src, 'http') === false)
// if it doesn't have a relative uri // If it doesn't have a relative URI.
if ( strpos($src, '../') === false && strpos($src, './') === false && strpos($src, '/') === 0) if ( strpos($src, '../') === false && strpos($src, './') === false && strpos($src, '/') === 0)
$src = 'http://'.str_replace('//','/', $host['host'].'/'.$src); $src = 'http://'.str_replace('//','/', $host['host'].'/'.$src);
else else
@ -197,7 +198,7 @@ if ( !empty($_REQUEST['ajax']) ) {
break; break;
case 'photo_js': ?> case 'photo_js': ?>
// gather images and load some default JS // Gather images and load some default JS.
var last = null var last = null
var img, img_tag, aspect, w, h, skip, i, strtoappend = ""; var img, img_tag, aspect, w, h, skip, i, strtoappend = "";
if(photostorage == false) { if(photostorage == false) {
@ -438,12 +439,14 @@ var photostorage = false;
} }
} }
jQuery(document).ready(function($) { jQuery(document).ready(function($) {
//resize screen // Resize screen.
window.resizeTo(760,580); window.resizeTo(760,580);
// set button actions
// Set button actions.
jQuery('#photo_button').click(function() { show('photo'); return false; }); jQuery('#photo_button').click(function() { show('photo'); return false; });
jQuery('#video_button').click(function() { show('video'); return false; }); jQuery('#video_button').click(function() { show('video'); return false; });
// auto select
// Auto select.
<?php if ( preg_match("/youtube\.com\/watch/i", $url) ) { ?> <?php if ( preg_match("/youtube\.com\/watch/i", $url) ) { ?>
show('video'); show('video');
<?php } elseif ( preg_match("/vimeo\.com\/[0-9]+/i", $url) ) { ?> <?php } elseif ( preg_match("/vimeo\.com\/[0-9]+/i", $url) ) { ?>

View File

@ -300,8 +300,10 @@ el.select();
</script> </script>
<?php <?php
else : else :
// If this file doesn't exist, then we are using the wp-config-sample.php /*
// file one level up, which is for the develop repo. * If this file doesn't exist, then we are using the wp-config-sample.php
* file one level up, which is for the develop repo.
*/
if ( file_exists( ABSPATH . 'wp-config-sample.php' ) ) if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
$path_to_wp_config = ABSPATH . 'wp-config.php'; $path_to_wp_config = ABSPATH . 'wp-config.php';
else else

View File

@ -81,7 +81,7 @@ case 'update':
$newcontent = wp_unslash( $_POST['newcontent'] ); $newcontent = wp_unslash( $_POST['newcontent'] );
$location = 'theme-editor.php?file=' . urlencode( $relative_file ) . '&theme=' . urlencode( $stylesheet ) . '&scrollto=' . $scrollto; $location = 'theme-editor.php?file=' . urlencode( $relative_file ) . '&theme=' . urlencode( $stylesheet ) . '&scrollto=' . $scrollto;
if ( is_writeable( $file ) ) { if ( is_writeable( $file ) ) {
//is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable // is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable
$f = fopen( $file, 'w+' ); $f = fopen( $file, 'w+' );
if ( $f !== false ) { if ( $f !== false ) {
fwrite( $f, $newcontent ); fwrite( $f, $newcontent );

View File

@ -540,8 +540,7 @@ if ( 'upgrade-core' == $action ) {
check_admin_referer('upgrade-core'); check_admin_referer('upgrade-core');
// do the (un)dismiss actions before headers, // Do the (un)dismiss actions before headers, so that they can redirect.
// so that they can redirect
if ( isset( $_POST['dismiss'] ) ) if ( isset( $_POST['dismiss'] ) )
do_dismiss_core_update(); do_dismiss_core_update();
elseif ( isset( $_POST['undismiss'] ) ) elseif ( isset( $_POST['undismiss'] ) )

View File

@ -141,7 +141,7 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
$id_base = $_POST['id_base']; $id_base = $_POST['id_base'];
$sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array(); $sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
// delete // Delete.
if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) { if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
if ( !in_array($widget_id, $sidebar, true) ) { if ( !in_array($widget_id, $sidebar, true) ) {
@ -168,7 +168,7 @@ if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
$sidebars_widgets[$sidebar_id] = $sidebar; $sidebars_widgets[$sidebar_id] = $sidebar;
// remove old position // Remove old position.
if ( !isset($_POST['delete_widget']) ) { if ( !isset($_POST['delete_widget']) ) {
foreach ( $sidebars_widgets as $key => $sb ) { foreach ( $sidebars_widgets as $key => $sb ) {
if ( is_array($sb) ) if ( is_array($sb) )
@ -224,7 +224,7 @@ if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
$id_base = isset($control['id_base']) ? $control['id_base'] : $control['id']; $id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
// show the widget form // Show the widget form.
$width = ' style="width:' . max($control['width'], 350) . 'px"'; $width = ' style="width:' . max($control['width'], 350) . 'px"';
$key = isset($_GET['key']) ? (int) $_GET['key'] : 0; $key = isset($_GET['key']) ? (int) $_GET['key'] : 0;