Wordpress++
This commit is contained in:
1 parent
790f1487a2
commit
3f49ab1747
610 files changed
+58979
-36562
No files matched your search
+111
-131
@@ -14,6 +14,9 @@
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
* @staticvar array $_themes
|
||||
*
|
||||
* @param array $args The search arguments. Optional.
|
||||
* - errors mixed True to return themes with errors, false to return themes without errors, null
|
||||
* to return all themes. Defaults to false.
|
||||
@@ -22,7 +25,7 @@
|
||||
* to return only network-allowed themes. Null to return all themes. Defaults to null.
|
||||
* - blog_id int (Multisite) The blog ID used to calculate which themes are allowed. Defaults to 0,
|
||||
* synonymous for the current blog.
|
||||
* @return Array of WP_Theme objects.
|
||||
* @return array Array of WP_Theme objects.
|
||||
*/
|
||||
function wp_get_themes( $args = array() ) {
|
||||
global $wp_theme_directories;
|
||||
@@ -84,9 +87,11 @@ function wp_get_themes( $args = array() ) {
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $stylesheet Directory name for the theme. Optional. Defaults to current theme.
|
||||
* @param string $theme_root Absolute path of the theme root to look in. Optional. If not specified, get_raw_theme_root()
|
||||
* is used to calculate the theme root for the $stylesheet provided (or current theme).
|
||||
* is used to calculate the theme root for the $stylesheet provided (or current theme).
|
||||
* @return WP_Theme Theme object. Be sure to check the object's exists() method if you need to confirm the theme's existence.
|
||||
*/
|
||||
function wp_get_theme( $stylesheet = null, $theme_root = null ) {
|
||||
@@ -243,6 +248,8 @@ function get_stylesheet_uri() {
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @global WP_Locale $wp_locale
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function get_locale_stylesheet_uri() {
|
||||
@@ -338,6 +345,8 @@ function get_template_directory_uri() {
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @return array|string An array of theme roots keyed by template/stylesheet or a single theme root if all themes have the same root.
|
||||
*/
|
||||
function get_theme_roots() {
|
||||
@@ -359,6 +368,8 @@ function get_theme_roots() {
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $directory Either the full filesystem path to a theme folder or a folder within WP_CONTENT_DIR
|
||||
* @return bool
|
||||
*/
|
||||
@@ -391,15 +402,19 @@ function register_theme_directory( $directory ) {
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
* @staticvar array $found_themes
|
||||
*
|
||||
* @param bool $force Optional. Whether to force a new directory scan. Defaults to false.
|
||||
* @return array Valid themes found
|
||||
* @return array|false Valid themes found
|
||||
*/
|
||||
function search_theme_directories( $force = false ) {
|
||||
global $wp_theme_directories;
|
||||
static $found_themes = null;
|
||||
|
||||
if ( empty( $wp_theme_directories ) )
|
||||
return false;
|
||||
|
||||
static $found_themes;
|
||||
if ( ! $force && isset( $found_themes ) )
|
||||
return $found_themes;
|
||||
|
||||
@@ -518,6 +533,8 @@ function search_theme_directories( $force = false ) {
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $stylesheet_or_template The stylesheet or template name of the theme
|
||||
* @return string Theme path.
|
||||
*/
|
||||
@@ -550,10 +567,12 @@ function get_theme_root( $stylesheet_or_template = false ) {
|
||||
*
|
||||
* @since 1.5.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $stylesheet_or_template Optional. The stylesheet or template name of the theme.
|
||||
* Default is to leverage the main theme root.
|
||||
* @param string $theme_root Optional. The theme root for which calculations will be based, preventing
|
||||
* the need for a get_raw_theme_root() call.
|
||||
* Default is to leverage the main theme root.
|
||||
* @param string $theme_root Optional. The theme root for which calculations will be based, preventing
|
||||
* the need for a get_raw_theme_root() call.
|
||||
* @return string Themes URI.
|
||||
*/
|
||||
function get_theme_root_uri( $stylesheet_or_template = false, $theme_root = false ) {
|
||||
@@ -597,8 +616,11 @@ function get_theme_root_uri( $stylesheet_or_template = false, $theme_root = fals
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param string $stylesheet_or_template The stylesheet or template name of the theme
|
||||
* @param bool $skip_cache Optional. Whether to skip the cache. Defaults to false, meaning the cache is used.
|
||||
* @param bool $skip_cache Optional. Whether to skip the cache.
|
||||
* Defaults to false, meaning the cache is used.
|
||||
* @return string Theme root
|
||||
*/
|
||||
function get_raw_theme_root( $stylesheet_or_template, $skip_cache = false ) {
|
||||
@@ -638,95 +660,6 @@ function locale_stylesheet() {
|
||||
echo '<link rel="stylesheet" href="' . $stylesheet . '" type="text/css" media="screen" />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Start preview theme output buffer.
|
||||
*
|
||||
* Will only perform task if the user has permissions and template and preview
|
||||
* query variables exist.
|
||||
*
|
||||
* @since 2.6.0
|
||||
*/
|
||||
function preview_theme() {
|
||||
if ( ! (isset($_GET['template']) && isset($_GET['preview'])) )
|
||||
return;
|
||||
|
||||
if ( !current_user_can( 'switch_themes' ) )
|
||||
return;
|
||||
|
||||
// Admin Thickbox requests
|
||||
if ( isset( $_GET['preview_iframe'] ) )
|
||||
show_admin_bar( false );
|
||||
|
||||
$_GET['template'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['template']);
|
||||
|
||||
if ( validate_file($_GET['template']) )
|
||||
return;
|
||||
|
||||
add_filter( 'template', '_preview_theme_template_filter' );
|
||||
|
||||
if ( isset($_GET['stylesheet']) ) {
|
||||
$_GET['stylesheet'] = preg_replace('|[^a-z0-9_./-]|i', '', $_GET['stylesheet']);
|
||||
if ( validate_file($_GET['stylesheet']) )
|
||||
return;
|
||||
add_filter( 'stylesheet', '_preview_theme_stylesheet_filter' );
|
||||
}
|
||||
|
||||
// Prevent theme mods to current theme being used on theme being previewed
|
||||
add_filter( 'pre_option_theme_mods_' . get_option( 'stylesheet' ), '__return_empty_array' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Private function to modify the current template when previewing a theme
|
||||
*
|
||||
* @since 2.9.0
|
||||
* @access private
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function _preview_theme_template_filter() {
|
||||
return isset($_GET['template']) ? $_GET['template'] : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Private function to modify the current stylesheet when previewing a theme
|
||||
*
|
||||
* @since 2.9.0
|
||||
* @access private
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function _preview_theme_stylesheet_filter() {
|
||||
return isset($_GET['stylesheet']) ? $_GET['stylesheet'] : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function for ob_start() to capture all links in the theme.
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @access private
|
||||
*
|
||||
* @param string $content
|
||||
* @return string
|
||||
*/
|
||||
function preview_theme_ob_filter( $content ) {
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Manipulates preview theme links in order to control and maintain location.
|
||||
*
|
||||
* Callback function for preg_replace_callback() to accept and filter matches.
|
||||
*
|
||||
* @since 2.6.0
|
||||
* @access private
|
||||
*
|
||||
* @param array $matches
|
||||
* @return string
|
||||
*/
|
||||
function preview_theme_ob_filter_callback( $matches ) {
|
||||
return $matches[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Switches the theme.
|
||||
*
|
||||
@@ -735,6 +668,10 @@ function preview_theme_ob_filter_callback( $matches ) {
|
||||
*
|
||||
* @since 2.5.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
* @global WP_Customize_Manager $wp_customize
|
||||
* @global array $sidebars_widgets
|
||||
*
|
||||
* @param string $stylesheet Stylesheet name
|
||||
*/
|
||||
function switch_theme( $stylesheet ) {
|
||||
@@ -850,11 +787,12 @@ function validate_current_theme() {
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @return array|null Theme modifications.
|
||||
* @return array|void Theme modifications.
|
||||
*/
|
||||
function get_theme_mods() {
|
||||
$theme_slug = get_option( 'stylesheet' );
|
||||
if ( false === ( $mods = get_option( "theme_mods_$theme_slug" ) ) ) {
|
||||
$mods = get_option( "theme_mods_$theme_slug" );
|
||||
if ( false === $mods ) {
|
||||
$theme_name = get_option( 'current_theme' );
|
||||
if ( false === $theme_name )
|
||||
$theme_name = wp_get_theme()->get('Name');
|
||||
@@ -877,7 +815,7 @@ function get_theme_mods() {
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @param string $name Theme modification name.
|
||||
* @param string $name Theme modification name.
|
||||
* @param bool|string $default
|
||||
* @return string
|
||||
*/
|
||||
@@ -912,8 +850,8 @@ function get_theme_mod( $name, $default = false ) {
|
||||
*
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @param string $name Theme modification name.
|
||||
* @param mixed $value theme modification value.
|
||||
* @param string $name Theme modification name.
|
||||
* @param mixed $value Theme modification value.
|
||||
*/
|
||||
function set_theme_mod( $name, $value ) {
|
||||
$mods = get_theme_mods();
|
||||
@@ -946,7 +884,6 @@ function set_theme_mod( $name, $value ) {
|
||||
* @since 2.1.0
|
||||
*
|
||||
* @param string $name Theme modification name.
|
||||
* @return null
|
||||
*/
|
||||
function remove_theme_mod( $name ) {
|
||||
$mods = get_theme_mods();
|
||||
@@ -956,9 +893,10 @@ function remove_theme_mod( $name ) {
|
||||
|
||||
unset( $mods[ $name ] );
|
||||
|
||||
if ( empty( $mods ) )
|
||||
return remove_theme_mods();
|
||||
|
||||
if ( empty( $mods ) ) {
|
||||
remove_theme_mods();
|
||||
return;
|
||||
}
|
||||
$theme = get_option( 'stylesheet' );
|
||||
update_option( "theme_mods_$theme", $mods );
|
||||
}
|
||||
@@ -1010,7 +948,7 @@ function display_header_text() {
|
||||
return false;
|
||||
|
||||
$text_color = get_theme_mod( 'header_textcolor', get_theme_support( 'custom-header', 'default-text-color' ) );
|
||||
return 'blank' != $text_color;
|
||||
return 'blank' !== $text_color;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1052,11 +990,13 @@ function get_header_image() {
|
||||
*
|
||||
* @access private
|
||||
*
|
||||
* @return string Path to header image
|
||||
* @global array $_wp_default_headers
|
||||
* @staticvar object $_wp_random_header
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
|
||||
function _get_random_header_data() {
|
||||
static $_wp_random_header;
|
||||
static $_wp_random_header = null;
|
||||
|
||||
if ( empty( $_wp_random_header ) ) {
|
||||
global $_wp_default_headers;
|
||||
@@ -1092,7 +1032,6 @@ function _get_random_header_data() {
|
||||
*
|
||||
* @return string Path to header image
|
||||
*/
|
||||
|
||||
function get_random_header_image() {
|
||||
$random_image = _get_random_header_data();
|
||||
if ( empty( $random_image->url ) )
|
||||
@@ -1110,7 +1049,7 @@ function get_random_header_image() {
|
||||
* @since 3.2.0
|
||||
*
|
||||
* @param string $type The random pool to use. any|default|uploaded
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
function is_random_header_image( $type = 'any' ) {
|
||||
$header_image_mod = get_theme_mod( 'header_image', get_theme_support( 'custom-header', 'default-image' ) );
|
||||
@@ -1160,10 +1099,13 @@ function get_uploaded_header_images() {
|
||||
$url = esc_url_raw( wp_get_attachment_url( $header->ID ) );
|
||||
$header_data = wp_get_attachment_metadata( $header->ID );
|
||||
$header_index = basename($url);
|
||||
|
||||
$header_images[$header_index] = array();
|
||||
$header_images[$header_index]['attachment_id'] = $header->ID;
|
||||
$header_images[$header_index]['attachment_id'] = $header->ID;
|
||||
$header_images[$header_index]['url'] = $url;
|
||||
$header_images[$header_index]['thumbnail_url'] = $url;
|
||||
$header_images[$header_index]['thumbnail_url'] = $url;
|
||||
$header_images[$header_index]['alt_text'] = get_post_meta( $header->ID, '_wp_attachment_image_alt', true );
|
||||
|
||||
if ( isset( $header_data['width'] ) )
|
||||
$header_images[$header_index]['width'] = $header_data['width'];
|
||||
if ( isset( $header_data['height'] ) )
|
||||
@@ -1178,6 +1120,8 @@ function get_uploaded_header_images() {
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @global array $_wp_default_headers
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
function get_custom_header() {
|
||||
@@ -1219,6 +1163,8 @@ function get_custom_header() {
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @global array $_wp_default_headers
|
||||
*
|
||||
* @param array $headers Array of headers keyed by a string id. The ids point to arrays containing 'url', 'thumbnail_url', and 'description' keys.
|
||||
*/
|
||||
function register_default_headers( $headers ) {
|
||||
@@ -1236,6 +1182,8 @@ function register_default_headers( $headers ) {
|
||||
* @see register_default_headers()
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @global array $_wp_default_headers
|
||||
*
|
||||
* @param string|array $header The header string id (key of array) to remove, or an array thereof.
|
||||
* @return bool|void A single header returns true on success, false on failure.
|
||||
* There is currently no return value for multiple headers.
|
||||
@@ -1359,11 +1307,12 @@ body.custom-background { <?php echo trim( $style ); ?> }
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @global array $editor_styles
|
||||
*
|
||||
* @param array|string $stylesheet Optional. Stylesheet name or array thereof, relative to theme root.
|
||||
* Defaults to 'editor-style.css'
|
||||
* Defaults to 'editor-style.css'
|
||||
*/
|
||||
function add_editor_style( $stylesheet = 'editor-style.css' ) {
|
||||
|
||||
add_theme_support( 'editor-style' );
|
||||
|
||||
if ( ! is_admin() )
|
||||
@@ -1385,6 +1334,8 @@ function add_editor_style( $stylesheet = 'editor-style.css' ) {
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @global array $editor_styles
|
||||
*
|
||||
* @return bool True on success, false if there were no stylesheets to remove.
|
||||
*/
|
||||
function remove_editor_styles() {
|
||||
@@ -1401,7 +1352,7 @@ function remove_editor_styles() {
|
||||
*
|
||||
* @since 4.0.0
|
||||
*
|
||||
* @global $editor_styles Registered editor stylesheets
|
||||
* @global array $editor_styles Registered editor stylesheets
|
||||
*
|
||||
* @return array If registered, a list of editor stylesheet URLs.
|
||||
*/
|
||||
@@ -1441,7 +1392,15 @@ function get_editor_stylesheets() {
|
||||
}
|
||||
}
|
||||
}
|
||||
return $stylesheets;
|
||||
|
||||
/**
|
||||
* Filter the array of stylesheets applied to the editor.
|
||||
*
|
||||
* @since 4.3.0
|
||||
*
|
||||
* @param array $stylesheets Array of stylesheets to be applied to the editor.
|
||||
*/
|
||||
return apply_filters( 'editor_stylesheets', $stylesheets );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1453,6 +1412,8 @@ function get_editor_stylesheets() {
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $_wp_theme_features
|
||||
*
|
||||
* @param string $feature The feature being added.
|
||||
* @return void|bool False on failure, void otherwise.
|
||||
*/
|
||||
@@ -1626,6 +1587,9 @@ function add_theme_support( $feature ) {
|
||||
*
|
||||
* @since 3.4.0
|
||||
* @access private
|
||||
*
|
||||
* @global Custom_Image_Header $custom_image_header
|
||||
* @global Custom_Background $custom_background
|
||||
*/
|
||||
function _custom_header_background_just_in_time() {
|
||||
global $custom_image_header, $custom_background;
|
||||
@@ -1663,6 +1627,8 @@ function _custom_header_background_just_in_time() {
|
||||
*
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @global array $_wp_theme_features
|
||||
*
|
||||
* @param string $feature the feature to check
|
||||
* @return mixed The array of extra arguments or the value for the registered feature.
|
||||
*/
|
||||
@@ -1696,7 +1662,7 @@ function get_theme_support( $feature ) {
|
||||
* @since 3.0.0
|
||||
* @see add_theme_support()
|
||||
* @param string $feature the feature being added
|
||||
* @return null|bool Whether feature was removed.
|
||||
* @return bool|void Whether feature was removed.
|
||||
*/
|
||||
function remove_theme_support( $feature ) {
|
||||
// Blacklist: for internal registrations not used directly by themes.
|
||||
@@ -1711,6 +1677,11 @@ function remove_theme_support( $feature ) {
|
||||
*
|
||||
* @access private
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @global array $_wp_theme_features
|
||||
* @global Custom_Image_Header $custom_image_header
|
||||
* @global Custom_Background $custom_background
|
||||
*
|
||||
* @param string $feature
|
||||
*/
|
||||
function _remove_theme_support( $feature ) {
|
||||
@@ -1756,8 +1727,11 @@ function _remove_theme_support( $feature ) {
|
||||
* Checks a theme's support for a given feature
|
||||
*
|
||||
* @since 2.9.0
|
||||
*
|
||||
* @global array $_wp_theme_features
|
||||
*
|
||||
* @param string $feature the feature being checked
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
function current_theme_supports( $feature ) {
|
||||
global $_wp_theme_features;
|
||||
@@ -1847,22 +1821,27 @@ function require_if_theme_supports( $feature, $include ) {
|
||||
* Checks an attachment being deleted to see if it's a header or background image.
|
||||
*
|
||||
* If true it removes the theme modification which would be pointing at the deleted
|
||||
* attachment
|
||||
* attachment.
|
||||
*
|
||||
* @access private
|
||||
* @since 3.0.0
|
||||
* @param int $id the attachment id
|
||||
* @since 4.3.0 Also removes `header_image_data`.
|
||||
*
|
||||
* @param int $id The attachment id.
|
||||
*/
|
||||
function _delete_attachment_theme_mod( $id ) {
|
||||
$attachment_image = wp_get_attachment_url( $id );
|
||||
$header_image = get_header_image();
|
||||
$header_image = get_header_image();
|
||||
$background_image = get_background_image();
|
||||
|
||||
if ( $header_image && $header_image == $attachment_image )
|
||||
if ( $header_image && $header_image == $attachment_image ) {
|
||||
remove_theme_mod( 'header_image' );
|
||||
remove_theme_mod( 'header_image_data' );
|
||||
}
|
||||
|
||||
if ( $background_image && $background_image == $attachment_image )
|
||||
if ( $background_image && $background_image == $attachment_image ) {
|
||||
remove_theme_mod( 'background_image' );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1910,6 +1889,8 @@ function check_theme_switched() {
|
||||
* Fires when ?wp_customize=on or on wp-admin/customize.php.
|
||||
*
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @global WP_Customize_Manager $wp_customize
|
||||
*/
|
||||
function _wp_customize_include() {
|
||||
if ( ! ( ( isset( $_REQUEST['wp_customize'] ) && 'on' == $_REQUEST['wp_customize'] )
|
||||
@@ -1917,9 +1898,8 @@ function _wp_customize_include() {
|
||||
) )
|
||||
return;
|
||||
|
||||
require( ABSPATH . WPINC . '/class-wp-customize-manager.php' );
|
||||
// Init Customize class
|
||||
$GLOBALS['wp_customize'] = new WP_Customize_Manager;
|
||||
require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
|
||||
$GLOBALS['wp_customize'] = new WP_Customize_Manager();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1928,8 +1908,6 @@ function _wp_customize_include() {
|
||||
* @since 3.4.0
|
||||
*/
|
||||
function _wp_customize_loader_settings() {
|
||||
global $wp_scripts;
|
||||
|
||||
$admin_origin = parse_url( admin_url() );
|
||||
$home_origin = parse_url( home_url() );
|
||||
$cross_domain = ( strtolower( $admin_origin[ 'host' ] ) != strtolower( $home_origin[ 'host' ] ) );
|
||||
@@ -1951,6 +1929,7 @@ function _wp_customize_loader_settings() {
|
||||
|
||||
$script = 'var _wpCustomizeLoaderSettings = ' . wp_json_encode( $settings ) . ';';
|
||||
|
||||
$wp_scripts = wp_scripts();
|
||||
$data = $wp_scripts->get_data( 'customize-loader', 'data' );
|
||||
if ( $data )
|
||||
$script = "$data\n$script";
|
||||
@@ -1964,7 +1943,8 @@ function _wp_customize_loader_settings() {
|
||||
* @since 3.4.0
|
||||
*
|
||||
* @param string $stylesheet Optional. Theme to customize. Defaults to current theme.
|
||||
* The theme's stylesheet will be urlencoded if necessary.
|
||||
* The theme's stylesheet will be urlencoded if necessary.
|
||||
* @return string
|
||||
*/
|
||||
function wp_customize_url( $stylesheet = null ) {
|
||||
$url = admin_url( 'customize.php' );
|
||||
|
||||
Reference in new issue
Block a user