a6c8efadb9
The exceptions to this are update_post_meta() and add_post_meta() which are often used by plugins in POST handlers and will continue accepting slashed data for now. Introduce wp_upate_post_meta() and wp_add_post_meta() as unslashed alternatives to update_post_meta() and add_post_meta(). These functions could become methods in WP_Post so don't use them too heavily yet. Remove all escape() calls from wp_xmlrpc_server. Now that core expects unslashed data this is no longer needed. Remove addslashes(), addslashes_gpc(), add_magic_quotes() calls on data being prepared for handoff to core functions that until now expected slashed data. Adding slashes in no longer necessary. Introduce wp_unslash() and use to it remove slashes from GPCS data before using it in core API. Almost every instance of stripslashes() in core should now be wp_unslash(). In the future (a release or three) when GPCS is no longer slashed, wp_unslash() will stop stripping slashes and simply return what is passed. At this point wp_unslash() calls can be removed from core. Introduce wp_slash() for slashing GPCS data. This will also turn into a noop once GPCS is no longer slashed. wp_slash() should almost never be used. It is mainly of use in unit tests. Plugins should use wp_unslash() on data being passed to core API. Plugins should no longer slash data being passed to core. So when you get_post() and then wp_insert_post() the post data from get_post() no longer needs addslashes(). Most plugins were not bothering with this. They will magically start doing the right thing. Unfortunately, those few souls who did it properly will now have to avoid calling addslashes() for 3.6 and newer. Use wp_kses_post() and wp_kses_data(), which expect unslashed data, instead of wp_filter_post_kses() and wp_filter_kses(), which expect slashed data. Filters are no longer passed slashed data. Remove many no longer necessary calls to $wpdb->escape() and esc_sql(). In wp_get_referer() and wp_get_original_referer(), return unslashed data. Remove old stripslashes() calls from WP_Widget::update() handlers. These haven't been necessary since WP_Widget. Switch several queries over to prepare(). Expect something to break. Props alexkingorg see #21767 git-svn-id: https://develop.svn.wordpress.org/trunk@23416 602fd350-edb4-49c9-b593-d223f7449a82
1026 lines
24 KiB
PHP
1026 lines
24 KiB
PHP
<?php
|
|
/**
|
|
* Deprecated admin functions from past WordPress versions. You shouldn't use these
|
|
* functions and look for the alternatives instead. The functions will be removed
|
|
* in a later version.
|
|
*
|
|
* @package WordPress
|
|
* @subpackage Deprecated
|
|
*/
|
|
|
|
/*
|
|
* Deprecated functions come here to die.
|
|
*/
|
|
|
|
/**
|
|
* @since 2.1
|
|
* @deprecated 2.1
|
|
* @deprecated Use wp_editor().
|
|
* @see wp_editor()
|
|
*/
|
|
function tinymce_include() {
|
|
_deprecated_function( __FUNCTION__, '2.1', 'wp_editor()' );
|
|
|
|
wp_tiny_mce();
|
|
}
|
|
|
|
/**
|
|
* Unused Admin function.
|
|
*
|
|
* @since 2.0
|
|
* @deprecated 2.5
|
|
*
|
|
*/
|
|
function documentation_link() {
|
|
_deprecated_function( __FUNCTION__, '2.5' );
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Calculates the new dimensions for a downsampled image.
|
|
*
|
|
* @since 2.0.0
|
|
* @deprecated 3.0.0
|
|
* @deprecated Use wp_constrain_dimensions()
|
|
* @see wp_constrain_dimensions()
|
|
*
|
|
* @param int $width Current width of the image
|
|
* @param int $height Current height of the image
|
|
* @param int $wmax Maximum wanted width
|
|
* @param int $hmax Maximum wanted height
|
|
* @return array Shrunk dimensions (width, height).
|
|
*/
|
|
function wp_shrink_dimensions( $width, $height, $wmax = 128, $hmax = 96 ) {
|
|
_deprecated_function( __FUNCTION__, '3.0', 'wp_constrain_dimensions()' );
|
|
return wp_constrain_dimensions( $width, $height, $wmax, $hmax );
|
|
}
|
|
|
|
/**
|
|
* Calculated the new dimensions for a downsampled image.
|
|
*
|
|
* @since 2.0.0
|
|
* @deprecated 3.5.0
|
|
* @deprecated Use wp_constrain_dimensions()
|
|
* @see wp_constrain_dimensions()
|
|
*
|
|
* @param int $width Current width of the image
|
|
* @param int $height Current height of the image
|
|
* @return array Shrunk dimensions (width, height).
|
|
*/
|
|
function get_udims( $width, $height ) {
|
|
_deprecated_function( __FUNCTION__, '3.5', 'wp_constrain_dimensions()' );
|
|
return wp_constrain_dimensions( $width, $height, 128, 96 );
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* @since 0.71
|
|
* @deprecated 2.6.0
|
|
* @deprecated Use wp_category_checklist()
|
|
* @see wp_category_checklist()
|
|
*
|
|
* @param unknown_type $default
|
|
* @param unknown_type $parent
|
|
* @param unknown_type $popular_ids
|
|
*/
|
|
function dropdown_categories( $default = 0, $parent = 0, $popular_ids = array() ) {
|
|
_deprecated_function( __FUNCTION__, '2.6', 'wp_category_checklist()' );
|
|
global $post_ID;
|
|
wp_category_checklist( $post_ID );
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @deprecated 2.6.0
|
|
* @deprecated Use wp_link_category_checklist()
|
|
* @see wp_link_category_checklist()
|
|
*
|
|
* @param unknown_type $default
|
|
*/
|
|
function dropdown_link_categories( $default = 0 ) {
|
|
_deprecated_function( __FUNCTION__, '2.6', 'wp_link_category_checklist()' );
|
|
global $link_id;
|
|
wp_link_category_checklist( $link_id );
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* @since 1.2.0
|
|
* @deprecated 3.0.0
|
|
* @deprecated Use wp_dropdown_categories()
|
|
* @see wp_dropdown_categories()
|
|
*
|
|
* @param unknown_type $currentcat
|
|
* @param unknown_type $currentparent
|
|
* @param unknown_type $parent
|
|
* @param unknown_type $level
|
|
* @param unknown_type $categories
|
|
* @return unknown
|
|
*/
|
|
function wp_dropdown_cats( $currentcat = 0, $currentparent = 0, $parent = 0, $level = 0, $categories = 0 ) {
|
|
_deprecated_function( __FUNCTION__, '3.0', 'wp_dropdown_categories()' );
|
|
if (!$categories )
|
|
$categories = get_categories( array('hide_empty' => 0) );
|
|
|
|
if ( $categories ) {
|
|
foreach ( $categories as $category ) {
|
|
if ( $currentcat != $category->term_id && $parent == $category->parent) {
|
|
$pad = str_repeat( '– ', $level );
|
|
$category->name = esc_html( $category->name );
|
|
echo "\n\t<option value='$category->term_id'";
|
|
if ( $currentparent == $category->term_id )
|
|
echo " selected='selected'";
|
|
echo ">$pad$category->name</option>";
|
|
wp_dropdown_cats( $currentcat, $currentparent, $category->term_id, $level +1, $categories );
|
|
}
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Register a setting and its sanitization callback
|
|
*
|
|
* @since 2.7.0
|
|
* @deprecated 3.0.0
|
|
* @deprecated Use register_setting()
|
|
* @see register_setting()
|
|
*
|
|
* @param string $option_group A settings group name. Should correspond to a whitelisted option key name.
|
|
* Default whitelisted option key names include "general," "discussion," and "reading," among others.
|
|
* @param string $option_name The name of an option to sanitize and save.
|
|
* @param unknown_type $sanitize_callback A callback function that sanitizes the option's value.
|
|
* @return unknown
|
|
*/
|
|
function add_option_update_handler( $option_group, $option_name, $sanitize_callback = '' ) {
|
|
_deprecated_function( __FUNCTION__, '3.0', 'register_setting()' );
|
|
return register_setting( $option_group, $option_name, $sanitize_callback );
|
|
}
|
|
|
|
/**
|
|
* Unregister a setting
|
|
*
|
|
* @since 2.7.0
|
|
* @deprecated 3.0.0
|
|
* @deprecated Use unregister_setting()
|
|
* @see unregister_setting()
|
|
*
|
|
* @param unknown_type $option_group
|
|
* @param unknown_type $option_name
|
|
* @param unknown_type $sanitize_callback
|
|
* @return unknown
|
|
*/
|
|
function remove_option_update_handler( $option_group, $option_name, $sanitize_callback = '' ) {
|
|
_deprecated_function( __FUNCTION__, '3.0', 'unregister_setting()' );
|
|
return unregister_setting( $option_group, $option_name, $sanitize_callback );
|
|
}
|
|
|
|
/**
|
|
* Determines the language to use for CodePress syntax highlighting.
|
|
*
|
|
* @since 2.8.0
|
|
* @deprecated 3.0.0
|
|
*
|
|
* @param string $filename
|
|
**/
|
|
function codepress_get_lang( $filename ) {
|
|
_deprecated_function( __FUNCTION__, '3.0' );
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Adds Javascript required to make CodePress work on the theme/plugin editors.
|
|
*
|
|
* @since 2.8.0
|
|
* @deprecated 3.0.0
|
|
**/
|
|
function codepress_footer_js() {
|
|
_deprecated_function( __FUNCTION__, '3.0' );
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Determine whether to use CodePress.
|
|
*
|
|
* @since 2.8
|
|
* @deprecated 3.0.0
|
|
**/
|
|
function use_codepress() {
|
|
_deprecated_function( __FUNCTION__, '3.0' );
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @return array List of user IDs.
|
|
*/
|
|
function get_author_user_ids() {
|
|
_deprecated_function( __FUNCTION__, '3.1', 'get_users()' );
|
|
|
|
global $wpdb;
|
|
if ( !is_multisite() )
|
|
$level_key = $wpdb->get_blog_prefix() . 'user_level';
|
|
else
|
|
$level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels
|
|
|
|
return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value != '0'", $level_key) );
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @param int $user_id User ID.
|
|
* @return array|bool List of editable authors. False if no editable users.
|
|
*/
|
|
function get_editable_authors( $user_id ) {
|
|
_deprecated_function( __FUNCTION__, '3.1', 'get_users()' );
|
|
|
|
global $wpdb;
|
|
|
|
$editable = get_editable_user_ids( $user_id );
|
|
|
|
if ( !$editable ) {
|
|
return false;
|
|
} else {
|
|
$editable = join(',', $editable);
|
|
$authors = $wpdb->get_results( "SELECT * FROM $wpdb->users WHERE ID IN ($editable) ORDER BY display_name" );
|
|
}
|
|
|
|
return apply_filters('get_editable_authors', $authors);
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @param int $user_id User ID.
|
|
* @param bool $exclude_zeros Optional, default is true. Whether to exclude zeros.
|
|
* @return unknown
|
|
*/
|
|
function get_editable_user_ids( $user_id, $exclude_zeros = true, $post_type = 'post' ) {
|
|
_deprecated_function( __FUNCTION__, '3.1', 'get_users()' );
|
|
|
|
global $wpdb;
|
|
|
|
if ( ! $user = get_userdata( $user_id ) )
|
|
return array();
|
|
$post_type_obj = get_post_type_object($post_type);
|
|
|
|
if ( ! $user->has_cap($post_type_obj->cap->edit_others_posts) ) {
|
|
if ( $user->has_cap($post_type_obj->cap->edit_posts) || ! $exclude_zeros )
|
|
return array($user->ID);
|
|
else
|
|
return array();
|
|
}
|
|
|
|
if ( !is_multisite() )
|
|
$level_key = $wpdb->get_blog_prefix() . 'user_level';
|
|
else
|
|
$level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels
|
|
|
|
$query = $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s", $level_key);
|
|
if ( $exclude_zeros )
|
|
$query .= " AND meta_value != '0'";
|
|
|
|
return $wpdb->get_col( $query );
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.1.0
|
|
*/
|
|
function get_nonauthor_user_ids() {
|
|
_deprecated_function( __FUNCTION__, '3.1', 'get_users()' );
|
|
|
|
global $wpdb;
|
|
|
|
if ( !is_multisite() )
|
|
$level_key = $wpdb->get_blog_prefix() . 'user_level';
|
|
else
|
|
$level_key = $wpdb->get_blog_prefix() . 'capabilities'; // wpmu site admins don't have user_levels
|
|
|
|
return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value = '0'", $level_key) );
|
|
}
|
|
|
|
if ( !class_exists('WP_User_Search') ) :
|
|
/**
|
|
* WordPress User Search class.
|
|
*
|
|
* @since 2.1.0
|
|
* @deprecated 3.1.0
|
|
*/
|
|
class WP_User_Search {
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var unknown_type
|
|
*/
|
|
var $results;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var unknown_type
|
|
*/
|
|
var $search_term;
|
|
|
|
/**
|
|
* Page number.
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var int
|
|
*/
|
|
var $page;
|
|
|
|
/**
|
|
* Role name that users have.
|
|
*
|
|
* @since 2.5.0
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $role;
|
|
|
|
/**
|
|
* Raw page number.
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var int|bool
|
|
*/
|
|
var $raw_page;
|
|
|
|
/**
|
|
* Amount of users to display per page.
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
* @var int
|
|
*/
|
|
var $users_per_page = 50;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var unknown_type
|
|
*/
|
|
var $first_user;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var int
|
|
*/
|
|
var $last_user;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $query_limit;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 3.0.0
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $query_orderby;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 3.0.0
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $query_from;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 3.0.0
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $query_where;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var int
|
|
*/
|
|
var $total_users_for_query = 0;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var bool
|
|
*/
|
|
var $too_many_total_users = false;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access private
|
|
* @var unknown_type
|
|
*/
|
|
var $search_errors;
|
|
|
|
/**
|
|
* {@internal Missing Description}}
|
|
*
|
|
* @since 2.7.0
|
|
* @access private
|
|
* @var unknown_type
|
|
*/
|
|
var $paging_text;
|
|
|
|
/**
|
|
* PHP4 Constructor - Sets up the object properties.
|
|
*
|
|
* @since 2.1.0
|
|
*
|
|
* @param string $search_term Search terms string.
|
|
* @param int $page Optional. Page ID.
|
|
* @param string $role Role name.
|
|
* @return WP_User_Search
|
|
*/
|
|
function WP_User_Search ($search_term = '', $page = '', $role = '') {
|
|
_deprecated_function( __FUNCTION__, '3.1', 'WP_User_Query' );
|
|
|
|
$this->search_term = $search_term;
|
|
$this->raw_page = ( '' == $page ) ? false : (int) $page;
|
|
$this->page = (int) ( '' == $page ) ? 1 : $page;
|
|
$this->role = $role;
|
|
|
|
$this->prepare_query();
|
|
$this->query();
|
|
$this->do_paging();
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* {@internal Missing Long Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*/
|
|
function prepare_query() {
|
|
global $wpdb;
|
|
$this->first_user = ($this->page - 1) * $this->users_per_page;
|
|
|
|
$this->query_limit = $wpdb->prepare(" LIMIT %d, %d", $this->first_user, $this->users_per_page);
|
|
$this->query_orderby = ' ORDER BY user_login';
|
|
|
|
$search_sql = '';
|
|
if ( $this->search_term ) {
|
|
$searches = array();
|
|
$search_sql = 'AND (';
|
|
foreach ( array('user_login', 'user_nicename', 'user_email', 'user_url', 'display_name') as $col )
|
|
$searches[] = $wpdb->prepare( $col . ' LIKE %s', '%' . like_escape($this->search_term) . '%' );
|
|
$search_sql .= implode(' OR ', $searches);
|
|
$search_sql .= ')';
|
|
}
|
|
|
|
$this->query_from = " FROM $wpdb->users";
|
|
$this->query_where = " WHERE 1=1 $search_sql";
|
|
|
|
if ( $this->role ) {
|
|
$this->query_from .= " INNER JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id";
|
|
$this->query_where .= $wpdb->prepare(" AND $wpdb->usermeta.meta_key = '{$wpdb->prefix}capabilities' AND $wpdb->usermeta.meta_value LIKE %s", '%' . $this->role . '%');
|
|
} elseif ( is_multisite() ) {
|
|
$level_key = $wpdb->prefix . 'capabilities'; // wpmu site admins don't have user_levels
|
|
$this->query_from .= ", $wpdb->usermeta";
|
|
$this->query_where .= " AND $wpdb->users.ID = $wpdb->usermeta.user_id AND meta_key = '{$level_key}'";
|
|
}
|
|
|
|
do_action_ref_array( 'pre_user_search', array( &$this ) );
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* {@internal Missing Long Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*/
|
|
function query() {
|
|
global $wpdb;
|
|
|
|
$this->results = $wpdb->get_col("SELECT DISTINCT($wpdb->users.ID)" . $this->query_from . $this->query_where . $this->query_orderby . $this->query_limit);
|
|
|
|
if ( $this->results )
|
|
$this->total_users_for_query = $wpdb->get_var("SELECT COUNT(DISTINCT($wpdb->users.ID))" . $this->query_from . $this->query_where); // no limit
|
|
else
|
|
$this->search_errors = new WP_Error('no_matching_users_found', __('No matching users were found!'));
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* {@internal Missing Long Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*/
|
|
function prepare_vars_for_template_usage() {}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* {@internal Missing Long Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*/
|
|
function do_paging() {
|
|
if ( $this->total_users_for_query > $this->users_per_page ) { // have to page the results
|
|
$args = array();
|
|
if( ! empty($this->search_term) )
|
|
$args['usersearch'] = urlencode($this->search_term);
|
|
if( ! empty($this->role) )
|
|
$args['role'] = urlencode($this->role);
|
|
|
|
$this->paging_text = paginate_links( array(
|
|
'total' => ceil($this->total_users_for_query / $this->users_per_page),
|
|
'current' => $this->page,
|
|
'base' => 'users.php?%_%',
|
|
'format' => 'userspage=%#%',
|
|
'add_args' => $args
|
|
) );
|
|
if ( $this->paging_text ) {
|
|
$this->paging_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s–%s of %s' ) . '</span>%s',
|
|
number_format_i18n( ( $this->page - 1 ) * $this->users_per_page + 1 ),
|
|
number_format_i18n( min( $this->page * $this->users_per_page, $this->total_users_for_query ) ),
|
|
number_format_i18n( $this->total_users_for_query ),
|
|
$this->paging_text
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* {@internal Missing Long Description}}
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*
|
|
* @return unknown
|
|
*/
|
|
function get_results() {
|
|
return (array) $this->results;
|
|
}
|
|
|
|
/**
|
|
* Displaying paging text.
|
|
*
|
|
* @see do_paging() Builds paging text.
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*/
|
|
function page_links() {
|
|
echo $this->paging_text;
|
|
}
|
|
|
|
/**
|
|
* Whether paging is enabled.
|
|
*
|
|
* @see do_paging() Builds paging text.
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*
|
|
* @return bool
|
|
*/
|
|
function results_are_paged() {
|
|
if ( $this->paging_text )
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Whether there are search terms.
|
|
*
|
|
* @since 2.1.0
|
|
* @access public
|
|
*
|
|
* @return bool
|
|
*/
|
|
function is_search() {
|
|
if ( $this->search_term )
|
|
return true;
|
|
return false;
|
|
}
|
|
}
|
|
endif;
|
|
|
|
/**
|
|
* Retrieve editable posts from other users.
|
|
*
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @param int $user_id User ID to not retrieve posts from.
|
|
* @param string $type Optional, defaults to 'any'. Post type to retrieve, can be 'draft' or 'pending'.
|
|
* @return array List of posts from others.
|
|
*/
|
|
function get_others_unpublished_posts($user_id, $type='any') {
|
|
_deprecated_function( __FUNCTION__, '3.1' );
|
|
|
|
global $wpdb;
|
|
|
|
$editable = get_editable_user_ids( $user_id );
|
|
|
|
if ( in_array($type, array('draft', 'pending')) )
|
|
$type_sql = " post_status = '$type' ";
|
|
else
|
|
$type_sql = " ( post_status = 'draft' OR post_status = 'pending' ) ";
|
|
|
|
$dir = ( 'pending' == $type ) ? 'ASC' : 'DESC';
|
|
|
|
if ( !$editable ) {
|
|
$other_unpubs = '';
|
|
} else {
|
|
$editable = join(',', $editable);
|
|
$other_unpubs = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title, post_author FROM $wpdb->posts WHERE post_type = 'post' AND $type_sql AND post_author IN ($editable) AND post_author != %d ORDER BY post_modified $dir", $user_id) );
|
|
}
|
|
|
|
return apply_filters('get_others_drafts', $other_unpubs);
|
|
}
|
|
|
|
/**
|
|
* Retrieve drafts from other users.
|
|
*
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @param int $user_id User ID.
|
|
* @return array List of drafts from other users.
|
|
*/
|
|
function get_others_drafts($user_id) {
|
|
_deprecated_function( __FUNCTION__, '3.1' );
|
|
|
|
return get_others_unpublished_posts($user_id, 'draft');
|
|
}
|
|
|
|
/**
|
|
* Retrieve pending review posts from other users.
|
|
*
|
|
* @deprecated 3.1.0
|
|
*
|
|
* @param int $user_id User ID.
|
|
* @return array List of posts with pending review post type from other users.
|
|
*/
|
|
function get_others_pending($user_id) {
|
|
_deprecated_function( __FUNCTION__, '3.1' );
|
|
|
|
return get_others_unpublished_posts($user_id, 'pending');
|
|
}
|
|
|
|
/**
|
|
* Output the QuickPress dashboard widget.
|
|
*
|
|
* @since 3.0.0
|
|
* @deprecated 3.2.0
|
|
* @deprecated Use wp_dashboard_quick_press()
|
|
* @see wp_dashboard_quick_press()
|
|
*/
|
|
function wp_dashboard_quick_press_output() {
|
|
_deprecated_function( __FUNCTION__, '3.2', 'wp_dashboard_quick_press()' );
|
|
wp_dashboard_quick_press();
|
|
}
|
|
|
|
/**
|
|
* @since 2.7.0
|
|
* @deprecated 3.3
|
|
* @deprecated Use wp_editor()
|
|
* @see wp_editor()
|
|
*/
|
|
function wp_tiny_mce( $teeny = false, $settings = false ) {
|
|
_deprecated_function( __FUNCTION__, '3.3', 'wp_editor()' );
|
|
|
|
static $num = 1;
|
|
|
|
if ( ! class_exists('_WP_Editors' ) )
|
|
require_once( ABSPATH . WPINC . '/class-wp-editor.php' );
|
|
|
|
$editor_id = 'content' . $num++;
|
|
|
|
$set = array(
|
|
'teeny' => $teeny,
|
|
'tinymce' => $settings ? $settings : true,
|
|
'quicktags' => false
|
|
);
|
|
|
|
$set = _WP_Editors::parse_settings($editor_id, $set);
|
|
_WP_Editors::editor_settings($editor_id, $set);
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use wp_editor()
|
|
* @see wp_editor()
|
|
*/
|
|
function wp_preload_dialogs() {
|
|
_deprecated_function( __FUNCTION__, '3.3', 'wp_editor()' );
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use wp_editor()
|
|
* @see wp_editor()
|
|
*/
|
|
function wp_print_editor_js() {
|
|
_deprecated_function( __FUNCTION__, '3.3', 'wp_editor()' );
|
|
}
|
|
|
|
/**
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use wp_editor()
|
|
* @see wp_editor()
|
|
*/
|
|
function wp_quicktags() {
|
|
_deprecated_function( __FUNCTION__, '3.3', 'wp_editor()' );
|
|
}
|
|
|
|
/**
|
|
* Returns the screen layout options.
|
|
*
|
|
* @since 2.8.0
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use $current_screen->render_screen_layout()
|
|
* @see WP_Screen::render_screen_layout()
|
|
*/
|
|
function screen_layout( $screen ) {
|
|
_deprecated_function( __FUNCTION__, '3.3', '$current_screen->render_screen_layout()' );
|
|
|
|
$current_screen = get_current_screen();
|
|
|
|
if ( ! $current_screen )
|
|
return '';
|
|
|
|
ob_start();
|
|
$current_screen->render_screen_layout();
|
|
return ob_get_clean();
|
|
}
|
|
|
|
/**
|
|
* Returns the screen's per-page options.
|
|
*
|
|
* @since 2.8.0
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use $current_screen->render_per_page_options()
|
|
* @see WP_Screen::render_per_page_options()
|
|
*/
|
|
function screen_options( $screen ) {
|
|
_deprecated_function( __FUNCTION__, '3.3', '$current_screen->render_per_page_options()' );
|
|
|
|
$current_screen = get_current_screen();
|
|
|
|
if ( ! $current_screen )
|
|
return '';
|
|
|
|
ob_start();
|
|
$current_screen->render_per_page_options();
|
|
return ob_get_clean();
|
|
}
|
|
|
|
/**
|
|
* Renders the screen's help.
|
|
*
|
|
* @since 2.7.0
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use $current_screen->render_screen_meta()
|
|
* @see WP_Screen::render_screen_meta()
|
|
*/
|
|
function screen_meta( $screen ) {
|
|
$current_screen = get_current_screen();
|
|
$current_screen->render_screen_meta();
|
|
}
|
|
|
|
/**
|
|
* Favorite actions were deprecated in version 3.2. Use the admin bar instead.
|
|
*
|
|
* @since 2.7.0
|
|
* @deprecated 3.2.0
|
|
*/
|
|
function favorite_actions() {
|
|
_deprecated_function( __FUNCTION__, '3.2', 'WP_Admin_Bar' );
|
|
}
|
|
|
|
function media_upload_image() {
|
|
__deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
|
|
return wp_media_upload_handler();
|
|
}
|
|
|
|
function media_upload_audio() {
|
|
__deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
|
|
return wp_media_upload_handler();
|
|
}
|
|
|
|
function media_upload_video() {
|
|
__deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
|
|
return wp_media_upload_handler();
|
|
}
|
|
|
|
function media_upload_file() {
|
|
__deprecated_function( __FUNCTION__, '3.3', 'wp_media_upload_handler()' );
|
|
return wp_media_upload_handler();
|
|
}
|
|
|
|
function type_url_form_image() {
|
|
__deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('image')" );
|
|
return wp_media_insert_url_form( 'image' );
|
|
}
|
|
|
|
function type_url_form_audio() {
|
|
__deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('audio')" );
|
|
return wp_media_insert_url_form( 'audio' );
|
|
}
|
|
|
|
function type_url_form_video() {
|
|
__deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('video')" );
|
|
return wp_media_insert_url_form( 'video' );
|
|
}
|
|
|
|
function type_url_form_file() {
|
|
__deprecated_function( __FUNCTION__, '3.3', "wp_media_insert_url_form('file')" );
|
|
return wp_media_insert_url_form( 'file' );
|
|
}
|
|
|
|
/**
|
|
* Add contextual help text for a page.
|
|
*
|
|
* Creates an 'Overview' help tab.
|
|
*
|
|
* @since 2.7.0
|
|
* @deprecated 3.3.0
|
|
* @deprecated Use get_current_screen()->add_help_tab()
|
|
* @see WP_Screen
|
|
*
|
|
* @param string $screen The handle for the screen to add help to. This is usually the hook name returned by the add_*_page() functions.
|
|
* @param string $help The content of an 'Overview' help tab.
|
|
*/
|
|
function add_contextual_help( $screen, $help ) {
|
|
_deprecated_function( __FUNCTION__, '3.3', 'get_current_screen()->add_help_tab()' );
|
|
|
|
if ( is_string( $screen ) )
|
|
$screen = convert_to_screen( $screen );
|
|
|
|
WP_Screen::add_old_compat_help( $screen, $help );
|
|
}
|
|
|
|
/**
|
|
* Get the allowed themes for the current blog.
|
|
*
|
|
* @since 3.0.0
|
|
* @deprecated 3.4.0
|
|
* @deprecated Use wp_get_themes()
|
|
* @see wp_get_themes()
|
|
*
|
|
* @return array $themes Array of allowed themes.
|
|
*/
|
|
function get_allowed_themes() {
|
|
_deprecated_function( __FUNCTION__, '3.4', "wp_get_themes( array( 'allowed' => true ) )" );
|
|
|
|
$themes = wp_get_themes( array( 'allowed' => true ) );
|
|
|
|
$wp_themes = array();
|
|
foreach ( $themes as $theme ) {
|
|
$wp_themes[ $theme->get('Name') ] = $theme;
|
|
}
|
|
|
|
return $wp_themes;
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* @since 1.5.0
|
|
*
|
|
* @return unknown
|
|
*/
|
|
function get_broken_themes() {
|
|
_deprecated_function( __FUNCTION__, '3.4', "wp_get_themes( array( 'errors' => true )" );
|
|
|
|
$themes = wp_get_themes( array( 'errors' => true ) );
|
|
$broken = array();
|
|
foreach ( $themes as $theme ) {
|
|
$name = $theme->get('Name');
|
|
$broken[ $name ] = array(
|
|
'Name' => $name,
|
|
'Title' => $name,
|
|
'Description' => $theme->errors()->get_error_message(),
|
|
);
|
|
}
|
|
return $broken;
|
|
}
|
|
|
|
/**
|
|
* {@internal Missing Short Description}}
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @return unknown
|
|
*/
|
|
function current_theme_info() {
|
|
_deprecated_function( __FUNCTION__, '3.4', 'wp_get_theme()' );
|
|
|
|
return wp_get_theme();
|
|
}
|
|
|
|
/**
|
|
* This was once used to display an 'Insert into Post' button. Now it is deprecated and stubbed.
|
|
*
|
|
* @deprecated 3.5.0
|
|
*/
|
|
function _insert_into_post_button( $type ) {
|
|
_deprecated_function( __FUNCTION__, '3.5' );
|
|
}
|
|
|
|
/**
|
|
* This was once used to display a media button. Now it is deprecated and stubbed.
|
|
*
|
|
* @deprecated 3.5.0
|
|
*/
|
|
function _media_button($title, $icon, $type, $id) {
|
|
_deprecated_function( __FUNCTION__, '3.5' );
|
|
}
|
|
|
|
/**
|
|
* Get an existing post and format it for editing.
|
|
*
|
|
* @since 2.0.0
|
|
* @deprecated 3.5.0
|
|
*
|
|
* @param int $id
|
|
* @return object
|
|
*/
|
|
function get_post_to_edit( $id ) {
|
|
_deprecated_function( __FUNCTION__, '3.5', 'get_post()' );
|
|
|
|
return get_post( $id, OBJECT, 'edit' );
|
|
}
|
|
|
|
/**
|
|
* Get the default page information to use.
|
|
*
|
|
* @since 2.5.0
|
|
* @deprecated 3.5.0
|
|
* @deprecated Use get_default_post_to_edit()
|
|
*
|
|
* @return WP_Post Post object containing all the default post data as attributes
|
|
*/
|
|
function get_default_page_to_edit() {
|
|
_deprecated_function( __FUNCTION__, '3.5', "get_default_post_to_edit( 'page' )" );
|
|
|
|
$page = get_default_post_to_edit();
|
|
$page->post_type = 'page';
|
|
return $page;
|
|
}
|
|
|
|
/**
|
|
* This was once used to create a thumbnail from an Image given a maximum side size.
|
|
*
|
|
* @since 1.2.0
|
|
* @deprecated 3.5.0
|
|
* @deprecated Use image_resize()
|
|
* @see image_resize()
|
|
*
|
|
* @param mixed $file Filename of the original image, Or attachment id.
|
|
* @param int $max_side Maximum length of a single side for the thumbnail.
|
|
* @param mixed $deprecated Never used.
|
|
* @return string Thumbnail path on success, Error string on failure.
|
|
*/
|
|
function wp_create_thumbnail( $file, $max_side, $deprecated = '' ) {
|
|
_deprecated_function( __FUNCTION__, '3.5', 'image_resize' );
|
|
return apply_filters( 'wp_create_thumbnail', image_resize( $file, $max_side, $max_side ) );
|
|
}
|