Updates bonanza

This commit is contained in:
nikolark committed 2014-07-24 14:38:32 +02:00
1 parent d26191c9f8
commit 9d480fc3c5
1366 files changed
+220321 -90180

No files matched your search

+53 -14
View File
@@ -37,11 +37,21 @@ final class WP_Theme implements ArrayAccess {
* @var array
*/
private static $default_themes = array(
'classic' => 'WordPress Classic',
'default' => 'WordPress Default',
'twentyten' => 'Twenty Ten',
'twentyeleven' => 'Twenty Eleven',
'twentytwelve' => 'Twenty Twelve',
'classic' => 'WordPress Classic',
'default' => 'WordPress Default',
'twentyten' => 'Twenty Ten',
'twentyeleven' => 'Twenty Eleven',
'twentytwelve' => 'Twenty Twelve',
'twentythirteen' => 'Twenty Thirteen',
'twentyfourteen' => 'Twenty Fourteen',
);
/**
* Renamed theme tags.
*/
private static $tag_map = array(
'fixed-width' => 'fixed-layout',
'flexible-width' => 'fluid-layout',
);
/**
@@ -86,7 +96,7 @@ final class WP_Theme implements ArrayAccess {
/**
* The directory name of the theme's files, inside the theme root.
*
* In the case of a child theme, this is directory name of the the child theme.
* In the case of a child theme, this is directory name of the child theme.
* Otherwise, 'stylesheet' is the same as 'template'.
*
* @access private
@@ -169,6 +179,7 @@ final class WP_Theme implements ArrayAccess {
// Initialize caching on first run.
if ( ! isset( self::$persistently_cache ) ) {
/** This action is documented in wp-includes/theme.php */
self::$persistently_cache = apply_filters( 'wp_cache_themes_persistently', false, 'WP_Theme' );
if ( self::$persistently_cache ) {
wp_cache_add_global_groups( 'themes' );
@@ -205,7 +216,7 @@ final class WP_Theme implements ArrayAccess {
} elseif ( ! file_exists( $this->theme_root . '/' . $theme_file ) ) {
$this->headers['Name'] = $this->stylesheet;
if ( ! file_exists( $this->theme_root . '/' . $this->stylesheet ) )
$this->errors = new WP_Error( 'theme_not_found', __( 'The theme directory does not exist.' ) );
$this->errors = new WP_Error( 'theme_not_found', sprintf( __( 'The theme directory "%s" does not exist.' ), $this->stylesheet ) );
else
$this->errors = new WP_Error( 'theme_no_stylesheet', __( 'Stylesheet is missing.' ) );
$this->template = $this->stylesheet;
@@ -524,7 +535,7 @@ final class WP_Theme implements ArrayAccess {
* @since 3.4.0
*
* @param string $header Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
* @return string String on success, false on failure.
* @return string|bool String on success, false on failure.
*/
public function get( $header ) {
if ( ! isset( $this->headers[ $header ] ) )
@@ -560,10 +571,13 @@ final class WP_Theme implements ArrayAccess {
* @param string $header Theme header. Name, Description, Author, Version, ThemeURI, AuthorURI, Status, Tags.
* @param bool $markup Optional. Whether to mark up the header. Defaults to true.
* @param bool $translate Optional. Whether to translate the header. Defaults to true.
* @return string Processed header, false on failure.
* @return string|bool Processed header, false on failure.
*/
public function display( $header, $markup = true, $translate = true ) {
$value = $this->get( $header );
if ( false === $value ) {
return false;
}
if ( $translate && ( empty( $value ) || ! $this->load_textdomain() ) )
$translate = false;
@@ -704,8 +718,11 @@ final class WP_Theme implements ArrayAccess {
}
foreach ( $value as &$tag ) {
if ( isset( $tags_list[ $tag ] ) )
if ( isset( $tags_list[ $tag ] ) ) {
$tag = $tags_list[ $tag ];
} elseif ( isset( self::$tag_map[ $tag ] ) ) {
$tag = $tags_list[ self::$tag_map[ $tag ] ];
}
}
return $value;
@@ -719,7 +736,7 @@ final class WP_Theme implements ArrayAccess {
/**
* The directory name of the theme's "stylesheet" files, inside the theme root.
*
* In the case of a child theme, this is directory name of the the child theme.
* In the case of a child theme, this is directory name of the child theme.
* Otherwise, get_stylesheet() is the same as get_template().
*
* @since 3.4.0
@@ -917,9 +934,10 @@ final class WP_Theme implements ArrayAccess {
* @since 3.4.0
* @access public
*
* @param WP_Post|null $post Optional. The post being edited, provided for context.
* @return array Array of page templates, keyed by filename, with the value of the translated header name.
*/
public function get_page_templates() {
public function get_page_templates( $post = null ) {
// If you screw up your current theme and we invalidate your parent, most things still work. Let it slide.
if ( $this->errors() && $this->errors()->get_error_codes() !== array( 'theme_parent_invalid' ) )
return array();
@@ -947,9 +965,23 @@ final class WP_Theme implements ArrayAccess {
}
if ( $this->parent() )
$page_templates += $this->parent()->get_page_templates();
$page_templates += $this->parent()->get_page_templates( $post );
return $page_templates;
/**
* Filter list of page templates for a theme.
*
* This filter does not currently allow for page templates to be added.
*
* @since 3.9.0
*
* @param array $page_templates Array of page templates. Keys are filenames,
* values are translated names.
* @param WP_Theme $this The theme object.
* @param WP_Post|null $post The post being edited, provided for context, or null.
*/
$return = apply_filters( 'theme_page_templates', $page_templates, $this, $post );
return array_intersect_assoc( $return, $page_templates );
}
/**
@@ -1073,6 +1105,13 @@ final class WP_Theme implements ArrayAccess {
* @return array Array of stylesheet names.
*/
public static function get_allowed( $blog_id = null ) {
/**
* Filter the array of themes allowed on the site or network.
*
* @since MU
*
* @param array $allowed_themes An array of theme stylesheet names.
*/
$network = (array) apply_filters( 'allowed_themes', self::get_allowed_on_network() );
return $network + self::get_allowed_on_site( $blog_id );
}