Twenty Fourteen: allow pages to have featured images, props iamtakashi. Fixes #25325.

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


git-svn-id: http://core.svn.wordpress.org/trunk@25648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Lance Willett 2013-10-08 21:22:10 +00:00
parent c100d28a25
commit c78cbb19ce
11 changed files with 128 additions and 89 deletions

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
<div class="entry-meta"> <div class="entry-meta">

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
<div class="entry-meta"> <div class="entry-meta">

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
<div class="entry-meta"> <div class="entry-meta">

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<?php the_title( '<header class="entry-header"><h1 class="entry-title">', '</h1></header><!-- .entry-header -->' ); ?> <?php the_title( '<header class="entry-header"><h1 class="entry-title">', '</h1></header><!-- .entry-header -->' ); ?>
<div class="entry-content"> <div class="entry-content">

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
<div class="entry-meta"> <div class="entry-meta">

View File

@ -8,6 +8,8 @@
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php twentyfourteen_featured_thumbnail(); ?>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>
<div class="entry-meta"> <div class="entry-meta">

View File

@ -3,13 +3,10 @@
* @package WordPress * @package WordPress
* @subpackage Twenty_Fourteen * @subpackage Twenty_Fourteen
*/ */
?> ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyfourteen' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="<?php the_ID(); ?>" class="attachment-featured-thumbnail"> <?php twentyfourteen_featured_thumbnail(); ?>
<?php the_post_thumbnail( 'featured-thumbnail-large' ); ?>
</a>
<header class="entry-header"> <header class="entry-header">
<?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?> <?php if ( in_array( 'category', get_object_taxonomies( get_post_type() ) ) && twentyfourteen_categorized_blog() ) : ?>

View File

@ -59,7 +59,7 @@ function twentyfourteen_setup() {
add_theme_support( 'automatic-feed-links' ); add_theme_support( 'automatic-feed-links' );
// Enable support for Post Thumbnails. // Enable support for Post Thumbnails.
add_theme_support( 'post-thumbnails', array( 'post' ) ); add_theme_support( 'post-thumbnails' );
// Adding several sizes for Post Thumbnails. // Adding several sizes for Post Thumbnails.
add_image_size( 'featured-thumbnail-large', 672, 0 ); add_image_size( 'featured-thumbnail-large', 672, 0 );
@ -480,6 +480,23 @@ function twentyfourteen_body_classes( $classes ) {
} }
add_filter( 'body_class', 'twentyfourteen_body_classes' ); add_filter( 'body_class', 'twentyfourteen_body_classes' );
/**
* Extends the default WordPress post classes.
*
* Adds a post class to denote:
* Non-password protected page with a featured image.
*
* @param array $classes A list of existing post class values.
* @return array The filtered post class list.
*/
function twentyfourteen_post_classes( $classes ) {
if ( ! post_password_required() && has_post_thumbnail() )
$classes[] = 'has-featured-image';
return $classes;
}
add_filter( 'post_class', 'twentyfourteen_post_classes' );
/** /**
* Creates a nicely formatted and more specific title element text for output * Creates a nicely formatted and more specific title element text for output
* in head of document, based on current view. * in head of document, based on current view.

View File

@ -143,3 +143,26 @@ function twentyfourteen_category_transient_flusher() {
} }
add_action( 'edit_category', 'twentyfourteen_category_transient_flusher' ); add_action( 'edit_category', 'twentyfourteen_category_transient_flusher' );
add_action( 'save_post', 'twentyfourteen_category_transient_flusher' ); add_action( 'save_post', 'twentyfourteen_category_transient_flusher' );
/**
* Displays featured image with appropriate html tag.
*
* @return void
*/
function twentyfourteen_featured_thumbnail() {
if ( ! post_password_required() ) :
if ( has_post_thumbnail() && is_singular() ) :
?>
<div class="attachment-featured-thumbnail">
<?php the_post_thumbnail( 'featured-thumbnail-large' ); ?>
</div>
<?php
else :
?>
<a href="<?php the_permalink(); ?>" rel="<?php the_ID(); ?>" class="attachment-featured-thumbnail">
<?php the_post_thumbnail( 'featured-thumbnail-large' ); ?>
</a>
<?php
endif;
endif;
}

View File

@ -128,5 +128,5 @@
$( this ).parents().toggleClass( 'a11y-focus' ); $( this ).parents().toggleClass( 'a11y-focus' );
} }
); );
} )( jQuery ); } )( jQuery );

View File

@ -453,6 +453,8 @@ input[type="submit"] {
/* Clearing */ /* Clearing */
.clear:before, .clear:before,
.clear:after, .clear:after,
.hentry:before,
.hentry:after,
[class*="content"]:before, [class*="content"]:before,
[class*="content"]:after, [class*="content"]:after,
[class*="site"]:before, [class*="site"]:before,
@ -462,6 +464,7 @@ input[type="submit"] {
} }
.clear:after, .clear:after,
.hentry:after,
[class*="content"]:after, [class*="content"]:after,
[class*="site"]:after { [class*="site"]:after {
clear: both; clear: both;
@ -716,7 +719,7 @@ body {
} }
.primary-navigation ul li:hover > ul, .primary-navigation ul li:hover > ul,
.primary-navigation ul li.a11y-focus > ul { .primary-navigation ul li.a11y-focus > ul {
left: auto; left: auto;
} }
.primary-navigation ul ul li:hover > ul, .primary-navigation ul ul li:hover > ul,
.primary-navigation ul ul li.a11y-focus > ul { .primary-navigation ul ul li.a11y-focus > ul {
@ -817,7 +820,7 @@ body {
background-image: -webkit-linear-gradient(135deg, #767676 12.5%, #fff 12.5%, #fff 50%, #767676 50%, #767676 62.5%, #fff 62.5%); background-image: -webkit-linear-gradient(135deg, #767676 12.5%, #fff 12.5%, #fff 50%, #767676 50%, #767676 62.5%, #fff 62.5%);
background-image: linear-gradient(135deg, #767676 12.5%, #fff 12.5%, #fff 50%, #767676 50%, #767676 62.5%, #fff 62.5%); background-image: linear-gradient(135deg, #767676 12.5%, #fff 12.5%, #fff 50%, #767676 50%, #767676 62.5%, #fff 62.5%);
background-size: 4px 4px; background-size: 4px 4px;
display: block; display: none;
float: none; float: none;
margin: 0; margin: 0;
min-height: 180px; min-height: 180px;
@ -826,6 +829,10 @@ body {
height: auto; height: auto;
z-index: 0; z-index: 0;
} }
.has-featured-image .attachment-featured-thumbnail,
.format-standard .attachment-featured-thumbnail {
display: block;
}
.attachment-featured-thumbnail:hover { .attachment-featured-thumbnail:hover {
background: #919191; background: #919191;
background-attachment: fixed; background-attachment: fixed;
@ -833,7 +840,7 @@ body {
background-image: linear-gradient(135deg, #919191 12.5%, #fff 12.5%, #fff 50%, #919191 50%, #919191 62.5%, #fff 62.5%); background-image: linear-gradient(135deg, #919191 12.5%, #fff 12.5%, #fff 50%, #919191 50%, #919191 62.5%, #fff 62.5%);
background-size: 4px 4px; background-size: 4px 4px;
} }
.full-width .attachment-featured-thumbnail img { .attachment-featured-thumbnail img {
display: block; display: block;
margin: 0 auto; margin: 0 auto;
} }
@ -948,15 +955,22 @@ footer.entry-meta {
/* .content-area specific styles */ /* .content-area specific styles */
.content-area .entry-header, .content-area .entry-header,
.content-area .entry-content, .content-area .entry-content,
.content-area .page-content,
.content-area .entry-summary, .content-area .entry-summary,
.content-area .entry-meta { .content-area .entry-meta,
.page-content {
margin: 0 auto; margin: 0 auto;
max-width: 474px; max-width: 474px;
} }
.content-area .entry-header { .content-area .entry-header {
background-color: #fff; background-color: #fff;
padding: 24px 10px 12px; padding: 0 10px 12px;
}
.content-area .has-featured-image .entry-header,
.content-area .format-standard .entry-header {
padding-top: 24px;
}
.content-area .format-standard.post-password-required .entry-header {
padding-top: 0;
} }
.content-area .entry-title { .content-area .entry-title {
font-size: 33px; font-size: 33px;
@ -971,8 +985,8 @@ footer.entry-meta {
text-transform: uppercase; text-transform: uppercase;
} }
.content-area .entry-content, .content-area .entry-content,
.content-area .page-content, .content-area .entry-summary,
.content-area .entry-summary { .page-content {
background-color: #fff; background-color: #fff;
padding: 12px 10px 0; padding: 12px 10px 0;
} }
@ -981,7 +995,7 @@ footer.entry-meta {
padding: 0 10px; padding: 0 10px;
} }
.content-area footer.entry-meta { .content-area footer.entry-meta {
margin-bottom: 36px; margin-bottom: 24px;
} }
.content-area footer.entry-meta .entry-title { .content-area footer.entry-meta .entry-title {
font-size: 12px; font-size: 12px;
@ -996,13 +1010,6 @@ footer.entry-meta .entry-title a {
footer.entry-meta .entry-title a:hover { footer.entry-meta .entry-title a:hover {
color: #2b2b2b; color: #2b2b2b;
} }
.format-aside,
.format-quote,
.format-link,
.format-image,
.format-video {
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.format-aside .entry-content, .format-aside .entry-content,
.format-aside .entry-summary, .format-aside .entry-summary,
.format-quote .entry-content, .format-quote .entry-content,
@ -1011,23 +1018,6 @@ footer.entry-meta .entry-title a:hover {
.format-link.entry-summary { .format-link.entry-summary {
padding-top: 0; padding-top: 0;
} }
/* Single specific styles */
.single .format-aside .entry-header,
.single .format-quote .entry-header,
.single .format-link .entry-header,
.single .format-image .entry-header,
.single .format-video .entry-header {
padding-top: 0;
}
.single .format-aside,
.single .format-quote,
.single .format-link,
.single .format-image,
.single .format-video {
border-top: none;
}
/* Page specific styles */ /* Page specific styles */
.page .entry-content, .page .entry-content,
.error404 .page-header, .error404 .page-header,
@ -1159,7 +1149,7 @@ footer.entry-meta .entry-title a:hover {
font-size: 16px; font-size: 16px;
font-weight: 900; font-weight: 900;
line-height: 1.5; line-height: 1.5;
margin-bottom: 24px; margin: 0 0 24px;
} }
.taxonomy-description { .taxonomy-description {
color: #767676; color: #767676;
@ -1586,7 +1576,7 @@ span > object {
} }
.post-navigation, .post-navigation,
.image-navigation { .image-navigation {
margin: 24px auto; margin: 24px auto 48px;
max-width: 474px; max-width: 474px;
padding: 0 10px; padding: 0 10px;
} }
@ -1655,7 +1645,7 @@ span > object {
----------------------------------------------- */ ----------------------------------------------- */
.comments-area { .comments-area {
margin: 36px auto; margin: 48px auto;
max-width: 474px; max-width: 474px;
padding: 0 10px; padding: 0 10px;
} }
@ -2208,13 +2198,6 @@ span > object {
margin: 0; margin: 0;
text-transform: none; text-transform: none;
} }
.list-view .content-area .format-aside,
.list-view .content-area .format-quote,
.list-view .content-area .format-link,
.list-view .content-area .format-image,
.list-view .content-area .format-video {
border-top: 0;
}
.list-view .content-area .format-aside .entry-title, .list-view .content-area .format-aside .entry-title,
.list-view .content-area .format-quote .entry-title, .list-view .content-area .format-quote .entry-title,
.list-view .content-area .format-link .entry-title { .list-view .content-area .format-link .entry-title {
@ -2232,7 +2215,7 @@ span > object {
} }
@media screen and (min-width: 401px) { @media screen and (min-width: 401px) {
.attachment-featured-thumbnail:hover img { a.attachment-featured-thumbnail:hover img {
opacity: 0.85; opacity: 0.85;
} }
.content-area span + .entry-date:before, .content-area span + .entry-date:before,
@ -2315,21 +2298,26 @@ span > object {
margin-bottom: 24px; margin-bottom: 24px;
padding: 0 10px; padding: 0 10px;
} }
.search-results .content-area .type-page { .list-view .content-area .hentry {
border-top: 1px solid rgba(0, 0, 0, 0.1); border-top: 1px solid rgba(0, 0, 0, 0.1);
padding-top: 48px;
} }
.search-results .content-area .type-page .entry-header { .list-view .content-area .has-featured-image .attachment-featured-thumbnail,
margin-top: 24px; .list-view .content-area .format-standard .attachment-featured-thumbnail {
margin-top: -49px;
} }
} }
@media screen and (min-width: 642px) { @media screen and (min-width: 642px) {
.content-area .entry-header { .content-area .entry-header {
margin-top: -48px;
padding-right: 30px; padding-right: 30px;
padding-left: 30px; padding-left: 30px;
} }
.attachment .content-area .entry-header { .content-area .has-featured-image .entry-header,
.content-area .format-standard .entry-header {
margin-top: -48px;
}
.content-area .format-standard.post-password-required .entry-header {
margin-top: 0; margin-top: 0;
} }
} }
@ -2343,7 +2331,8 @@ span > object {
.site-content { .site-content {
margin-right: 33.33333333%; margin-right: 33.33333333%;
} }
.content-area .entry-header { .content-area .has-featured-image .entry-header,
.content-area .format-standard .entry-header {
margin-top: 0; margin-top: 0;
} }
.content-area .entry-content, .content-area .entry-content,
@ -2385,6 +2374,10 @@ span > object {
.full-width .site-content { .full-width .site-content {
margin-right: 0; margin-right: 0;
} }
.full-width .content-area .has-featured-image .entry-header,
.full-width .content-area .format-standard .entry-header {
margin-top: -48px;
}
} }
@media screen and (min-width: 770px) { @media screen and (min-width: 770px) {
@ -2417,8 +2410,8 @@ span > object {
margin-left: -168px; margin-left: -168px;
max-width: 810px; max-width: 810px;
} }
.single-attachment .entry-content .attachment { .single-attachment .entry-content .attachment img {
text-align: center; margin: 0 auto;
} }
.full-width .entry-content blockquote.alignleft, .full-width .entry-content blockquote.alignleft,
.full-width .entry-content blockquote.alignright { .full-width .entry-content blockquote.alignright {
@ -2434,27 +2427,16 @@ span > object {
} }
@media screen and (min-width: 870px) { @media screen and (min-width: 870px) {
.content-area { .content-area,
.content-sidebar,
.ephemera {
padding-top: 72px; padding-top: 72px;
} }
.home .content-area { .content-area .has-featured-image .entry-header,
padding-top: 36px; .content-area .format-standard .entry-header {
}
.content-area .entry-header {
margin-top: -48px; margin-top: -48px;
} }
.content-area .format-aside .entry-header, .content-area .format-standard.post-password-required .entry-header {
.content-area .format-quote .entry-header,
.content-area .format-link .entry-header,
.content-area .format-video .entry-header,
.content-area .format-image .entry-header {
margin-top: 12px;
}
.single .content-area .format-aside .entry-header,
.single .content-area .format-quote .entry-header,
.single .content-area .format-link .entry-header,
.single .content-area .format-image .entry-header,
.single .content-area .format-video .entry-header {
margin-top: 0; margin-top: 0;
} }
.comments-area article, .comments-area article,
@ -2512,19 +2494,6 @@ span > object {
.content-area .entry-header { .content-area .entry-header {
margin-top: 0; margin-top: 0;
} }
.content-area .entry-header
.content-area .entry-content,
.content-area .entry-summary,
.content-area footer.entry-meta,
.archive-header,
.page-header,
.page-content,
.post-navigation,
.image-navigation,
.comments-area {
padding-right: 0;
padding-left: 0;
}
.site-footer { .site-footer {
padding-left: 27px; padding-left: 27px;
} }
@ -2610,12 +2579,20 @@ span > object {
.featured-content { .featured-content {
padding-left: 182px; padding-left: 182px;
} }
.content-area .has-featured-image .entry-header,
.content-area .format-standard .entry-header {
margin-top: 0;
}
} }
@media screen and (min-width: 1040px) { @media screen and (min-width: 1040px) {
.content-area .entry-header { .content-area .has-featured-image .entry-header,
.content-area .format-standard .entry-header {
margin-top: -48px; margin-top: -48px;
} }
.content-area .format-standard.post-password-required .entry-header {
margin-top: 0;
}
.content-area .entry-header, .content-area .entry-header,
.content-area .entry-content, .content-area .entry-content,
.content-area .entry-summary, .content-area .entry-summary,
@ -2629,6 +2606,19 @@ span > object {
padding-right: 15px; padding-right: 15px;
padding-left: 15px; padding-left: 15px;
} }
.full-width .content-area .entry-header,
.full-width .content-area .entry-content,
.full-width .content-area .entry-summary,
.full-width .content-area footer.entry-meta,
.full-width .archive-header,
.full-width .page-header,
.full-width .page-content,
.full-width .post-navigation,
.full-width .image-navigation,
.full-width .comments-area {
padding-right: 30px;
padding-left: 30px;
}
} }
@media screen and (min-width: 1080px) { @media screen and (min-width: 1080px) {