Archived
Updates bonanza
This commit is contained in:
1 parent
d26191c9f8
commit
9d480fc3c5
1366 files changed
+220321
-90180
No files matched your search
@@ -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 );
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user