Remove the old wp_auto_updates_maybe_update cron event. Schedule the new wp_maybe_auto_update event at 7 a.m. and 7 p.m. in the site's timezone.

see #27704.

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


git-svn-id: http://core.svn.wordpress.org/trunk@25825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Andrew Nacin 2013-10-24 22:53:14 +00:00
parent 0dbec8fa31
commit 8ae8e01b67
127 changed files with 1451 additions and 2134 deletions

View File

@ -13,15 +13,13 @@ $title = __( 'About' );
list( $display_version ) = explode( '-', $wp_version );
wp_enqueue_script( 'about' );
include( ABSPATH . 'wp-admin/admin-header.php' );
?>
<div class="wrap about-wrap">
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php printf( __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ), $display_version ); ?></div>
<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s makes your writing experience even better.' ), $display_version ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
@ -36,81 +34,65 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
</h2>
<div class="changelog">
<h3><?php _e( 'Background Updates' ); ?></h3>
<h3><?php _e( 'Colorful New Theme' ); ?></h3>
<div class="feature-section col three-col about-updates">
<div class="col-1">
<h4><?php _e( 'Updates While You Sleep' ); ?></h4>
<p><?php _e( 'With WordPress 3.7, you don&#8217;t have to lift a finger to apply maintenance and security updates. Most sites are now able to automatically apply these updates in the background, though some configurations may not allow it.' ); ?></p>
</div>
<div class="col-2">
<img alt="" src="<?php echo admin_url( 'images/about-updates-2x.png' ); ?>" />
</div>
<div class="col-3 last-feature">
<h4><?php _e( 'More Reliable Than Ever' ); ?></h4>
<p><?php _e( 'The update process has been made even more reliable and secure, with dozens of new checks and safeguards.' ); ?></p>
<p><?php _e( 'You&#8217;ll still need to click &#8220;Update Now&#8221; once WordPress 3.8 is released, but we&#8217;ve never had more confidence in that beautiful blue button.' ); ?></p>
</div>
<?php
if ( current_user_can( 'update_core' ) ) {
$future_minor_update = (object) array(
'current' => $wp_version . '.1.next.minor',
'version' => $wp_version . '.1.next.minor',
'php_version' => $required_php_version,
'mysql_version' => $required_mysql_version,
);
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$updater = new WP_Automatic_Updater;
$can_auto_update = wp_http_supports( 'ssl' ) && $updater->should_update( 'core', $future_minor_update, ABSPATH );
if ( $can_auto_update ) {
echo '<p class="about-auto-update cool">' . __( 'This site <strong>is</strong> able to apply these updates automatically. Cool!' ). '</p>';
// If the updater is disabled entirely, don't show them anything.
} elseif ( ! $updater->is_disabled() ) {
echo '<p class="about-auto-update">';
// If this is is filtered to false, they won't get emails, so don't claim we will.
// Assumption: If the user can update core, they can see what the admin email is.
/** This filter is documented in wp-admin/includes/class-wp-upgrader.php */
if ( apply_filters( 'send_core_update_notification_email', true, $future_minor_update ) ) {
printf( __( 'This site <strong>is not</strong> able to apply these updates automatically. But we&#8217;ll email %s when there is a new security release.' ), esc_html( get_site_option( 'admin_email' ) ) );
} else {
_e( 'This site <strong>is not</strong> able to apply these updates automatically.' );
}
echo '</p>';
}
}
?>
<div class="feature-section images-stagger-right">
<img alt="" src="<?php echo is_ssl() ? 'https://' : '//s.'; ?>wordpress.org/images/core/3.6/twentythirteen.png" class="image-66" />
<h4><?php _e( 'Introducing Twenty Thirteen' ); ?></h4>
<p><?php printf( __( "The new default theme puts focus on your content with a colorful, single-column design made for media-rich blogging." ) ); ?></p>
<p><?php _e( 'Inspired by modern art, Twenty Thirteen features quirky details, beautiful typography, and bold, high-contrast colors &mdash; all with a flexible layout that looks great on any device, big or small.' ); ?></p>
</div>
</div>
<div class="changelog about-passwords">
<h3><?php _e( 'Create Stronger Passwords' ); ?></h3>
<div class="changelog">
<h3><?php _e( 'Write with Confidence' ); ?></h3>
<div class="feature-section images-stagger-right">
<img alt="" src="<?php echo is_ssl() ? 'https://' : '//s.'; ?>wordpress.org/images/core/3.6/revisions.png" class="image-66" />
<h4><?php _e( 'Explore Revisions' ); ?></h4>
<p></p>
<p><?php _e( 'From the first word you write, WordPress saves every change. Each revision is always at your fingertips. Text is highlighted as you scroll through revisions at lightning speed, so you can see what changes have been made along the way.' ); ?></p>
<p><?php _e( 'It&#8217;s easy to compare two revisions from any point in time, and to restore a revision and go back to writing. Now you can be confident that no mistake is permanent.' ); ?></p>
</div>
<div class="feature-section col two-col">
<div>
<p><?php _e( 'Your password is your site&#8217;s first line of defense. It&#8217;s best to create passwords that are complex, long, and unique. To that end, our password meter has been updated in WordPress 3.7 to recognize common mistakes that can weaken your password: dates, names, keyboard patterns (123456789), and even pop culture references.' ); ?></p>
<p><strong><?php _e( 'Try it out on the right.' ); ?></strong></p>
<h4><?php _e( 'Improved Autosaves' ); ?></h4>
<p><?php _e( 'Never lose a word you&#8217;ve written. Autosaving is now even better; whether your power goes out, your browser crashes, or you lose your internet connection, your content is safe.' ); ?></p>
</div>
<div class="last-feature about-password-meter">
<input type="password" id="pass" size="25" value="" />
<p id="pass-strength-result" ><?php _e( 'Strength indicator' ); ?></p>
<?php printf( __( 'Getting the urge to <a href="%s">change your password</a>?' ), esc_url( self_admin_url( 'profile.php' ) ) ); ?>
<div class="last-feature">
<h4><?php _e( 'Better Post Locking' ); ?></h4>
<p><?php _e( 'Always know who&#8217;s editing with live updates that appear in the list of posts. And if someone leaves for lunch with a post open, you can take over where they left off.' ); ?></p>
</div>
</div>
</div>
<div class="changelog">
<div class="feature-section col two-col">
<div>
<h3><?php _e( 'Improved Search Results' ); ?></h3>
<p><img alt="" src="<?php echo admin_url( 'images/about-search-2x.png' ); ?>" /><?php _e( 'Search results are now ordered by how well the search query matches a post, instead of ordered only by date. For example, when your search terms match a post title, that result will be pushed to the top.' ); ?></p>
</div>
<div class="last-feature">
<h3><?php _e( 'Better Global Support' ); ?></h3>
<p><img alt="" src="<?php echo admin_url( 'images/about-globe-2x.png' ); ?>" /><?php _e( 'Localized versions of WordPress will receive faster and more complete translations. WordPress 3.7 adds support for automatically installing the right language files and keeping them up to date.' ); ?></p>
</div>
<h3><?php _e( 'Support for Audio and Video' ); ?></h3>
<div class="feature-section images-stagger-right">
<div class="video image-66"><?php
$sample_video = ( is_ssl() ? 'https://' : 'http://s.' ) . 'wordpress.org/images/core/3.6/sample-video';
$args = array(
'mp4' => "$sample_video.mp4",
'ogv' => "$sample_video.ogv",
'width' => 625,
'height' => 360,
);
// Opera 12 (Presto, pre-Chromium) fails to load ogv properly
// when combined with ME.js. Works fine in Opera 15.
// Don't serve ogv to Opera 12 to avoid complete brokeness.
if ( $GLOBALS['is_opera'] )
unset( $args['ogv'] );
// Our current ME.js API is limited to shortcodes in posts.
echo wp_video_shortcode( $args );
?></div>
<h4><?php _e( 'New Media Player' ); ?></h4>
<p><?php _e( 'Share your audio and video with the new built-in HTML5 media player. Upload files using the media manager and embed them in your posts.' ); ?></p>
<h4><?php _e( 'Embed Music from Spotify, Rdio, and SoundCloud' ); ?></h4>
<p><?php _e( 'Embed songs and albums from your favorite artists, or playlists you&#8217;ve mixed yourself. It&#8217;s as simple as pasting a URL into a post on its own line.' ); ?></p>
<p><?php printf( __( '(Love another service? Check out all of the <a href="%s">embeds</a> that WordPress supports.)' ), 'http://codex.wordpress.org/Embeds' ); ?></p>
</div>
</div>
@ -119,17 +101,35 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
<div class="feature-section col three-col">
<div>
<h4><?php _e( 'More Background Updates (Experimental)' ); ?></h4>
<p><?php _e( 'Want WordPress to always update automatically, even for major feature releases? Want to always keep a certain plugin up to date in the background? WordPress 3.7 comes with fine-grained update controls for developers and systems administrators.' ); ?></p>
<h4><?php _e( 'Audio/Video API' ); ?></h4>
<p><?php _e( 'The new audio/video APIs give developers access to powerful media metadata, like ID3 tags.' ); ?></p>
</div>
<div>
<h4><?php _e( 'Advanced Date Queries' ); ?></h4>
<p><?php _e( 'Developers can now query for posts within a date range, or that are older than or newer than a specific point in time. Or get really fancy: all posts written on Friday afternoons? Not&nbsp;a&nbsp;problem.' ); ?></p>
<h4><?php _e( 'Semantic Markup' ); ?></h4>
<p><?php _e( 'Themes can now choose improved HTML5 markup for comment forms, search forms, and comment lists.' ); ?></p>
</div>
<div class="last-feature">
<h4><?php _e( 'Multisite Improvements' ); ?></h4>
<p><?php _e( '<code>wp_get_sites()</code> allows developers to easily get an array of all the sites on your network without resorting to a direct database query &mdash; just one of many improvements to multisite in WordPress 3.7.' ); ?></p>
<h4><?php _e( 'JavaScript Utilities' ); ?></h4>
<p><?php _e( 'Handy JavaScript utilities ease common tasks like Ajax requests, templating, and Backbone view management.' ); ?></p>
</div>
</div>
<div class="feature-section col three-col">
<div>
<h4><?php _e( 'Shortcode Improvements' ); ?></h4>
<p><?php _e( 'Search content for shortcodes with <code>has_shortcode()</code> and adjust shortcode attributes with a new filter.' ); ?></p>
</div>
<div>
<h4><?php _e( 'Revision Control' ); ?></h4>
<p><?php _e( 'Fine-grained revision controls allow you to keep a different number of revisions for each post type.' ); ?></p>
</div>
<div class="last-feature">
<h4><?php _e( 'External Libraries' ); ?></h4>
<p><?php
/* translators: placeholders 2, 3 and 4 are version numbers */
printf( __( 'New and updated libraries: <a href="%1$s">MediaElement.js</a>, jQuery %2$s, jQuery UI %3$s, jQuery Migrate, Backbone %4$s.' ), 'http://mediaelementjs.com/', '1.10.2', '1.10.3', '1.0' ); ?></p>
</div>
</div>
</div>
<div class="return-to-dashboard">

View File

@ -38,7 +38,7 @@ require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' );
send_nosniff_header();
nocache_headers();
/** This action is documented in wp-admin/admin.php */
//duplicate_hook
do_action( 'admin_init' );
$core_actions_get = array(

View File

@ -21,17 +21,17 @@ if ( !defined('ABSPATH') )
* Fires after the opening tag for the admin footer.
*
* @since 2.5.0
*/
do_action( 'in_admin_footer' );
*/
do_action( 'in_admin_footer' );
?>
<p id="footer-left" class="alignleft">
<?php
/**
* Filter the "Thank you" text displayed in the admin footer.
*
*
* @since 2.8.0
* @param string The content that will be printed.
*/
*/
echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>' );
?>
</p>
@ -42,11 +42,11 @@ if ( !defined('ABSPATH') )
*
* @see core_update_footer() WordPress prints the current version and update information,
* using core_update_footer() at priority 10.
*
*
* @since 2.3.0
* @param string The content that will be printed.
*/
echo apply_filters( 'update_footer', '' );
echo apply_filters( 'update_footer', '' );
?>
</p>
<div class="clear"></div>
@ -54,7 +54,7 @@ if ( !defined('ABSPATH') )
<?php
/**
* Print scripts or data before the default footer scripts.
*
*
* @since 1.2.0
* @param string The data to print.
*/
@ -62,16 +62,16 @@ do_action('admin_footer', '');
/**
* Prints any scripts and data queued for the footer.
*
*
* @since 2.8.0
*/
do_action('admin_print_footer_scripts');
/**
* Print scripts or data after the default footer scripts.
*
*
* @since 2.8.0
*
*
* @param string $GLOBALS['hook_suffix'] The current admin page.
*/
do_action("admin_footer-" . $GLOBALS['hook_suffix']);

View File

@ -23,7 +23,7 @@ require_once(ABSPATH . 'wp-admin/includes/admin.php');
nocache_headers();
/** This action is documented in wp-admin/admin.php */
//duplicate_hook
do_action( 'admin_init' );
$action = 'admin_post';

View File

@ -279,7 +279,7 @@ case 'editedcomment' :
edit_comment();
$location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id;
/**
* Filter the URI the user is redirected to after editing a comment in the admin.
*

View File

@ -81,7 +81,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php printf( __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ), $display_version ); ?></div>
<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s makes your writing experience even better.' ), $display_version ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>

View File

@ -2000,6 +2000,13 @@ h2.nav-tab-wrapper, h3.nav-tab-wrapper {
color: #464646;
}
.about-wrap .feature-section img {
background: #fff;
border: 1px #ccc solid;
-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
}
.about-wrap h4.wp-people-group {
text-shadow: 1px 1px 1px #fff;
}

File diff suppressed because one or more lines are too long

View File

@ -1889,6 +1889,13 @@ h2.nav-tab-wrapper, h3.nav-tab-wrapper {
color: #464646;
}
.about-wrap .feature-section img {
background: #fff;
border: 1px #ccc solid;
-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
}
.about-wrap h4.wp-people-group {
text-shadow: 1px 1px 1px #fff;
}

File diff suppressed because one or more lines are too long

View File

@ -486,6 +486,20 @@ table.ie-fixed {
min-width: 400px;
}
.about-wrap img.element-screenshot {
padding: 2px;
}
.about-wrap .feature-section img,
.about-wrap .feature-section .image-mask {
border-width: 1px;
border-style: solid;
}
.about-wrap .feature-section.three-col img {
margin-left: 0;
}
.available-theme {
display: inline;
}
@ -499,21 +513,13 @@ table.ie-fixed {
margin-right: 7px;
}
.about-wrap .three-col.about-updates .col-2 {
width: 15%;
.about-wrap .three-col-images img {
margin: 0 0.6% 10px;
}
.about-wrap .about-password-meter input {
width: 98%;
}
.revisions-tickmarks,
.revisions-tooltip {
display: none !important;
}
.revisions.pinned .revisions-controls {
position: relative;
.about-wrap .three-col-images .last-feature,
.about-wrap .three-col-images .first-feature {
float: none;
}
/* IE6 leftovers */
@ -620,3 +626,13 @@ table.ie-fixed {
* html #adminmenu div.wp-menu-image {
height: 29px;
}
.revisions-tickmarks,
.revisions-tooltip {
display: none !important;
}
.revisions.pinned .revisions-controls {
position: relative;
}

File diff suppressed because one or more lines are too long

View File

@ -1706,21 +1706,38 @@ h2 .nav-tab {
float: right;
}
.about-wrap .feature-section.two-col div,
.about-wrap .feature-section.three-col div {
margin-right: 0;
margin-left: 4.999999999%;
float: right;
}
.about-wrap .feature-section.col .last-feature {
.about-wrap .feature-section.three-col h4 {
text-align: right;
}
.about-wrap .feature-section.three-col img {
margin-right: 5px;
margin-left: 0;
}
.about-wrap .feature-section div p img {
float: left;
.about-wrap .feature-section.three-col .last-feature {
margin-left: 0;
margin-right: 10px;
}
.about-wrap .feature-section img {
margin: 0 0 10px 0.7%;
}
.about-wrap .feature-section.images-stagger-right img,
.about-wrap .feature-section.images-stagger-right .video {
float: left;
margin: 0 2em 12px 5px;
}
.about-wrap .feature-section.images-stagger-left img {
float: right;
margin: 0 5px 12px 2em;
}
.about-wrap li.wp-person,
@ -1730,6 +1747,25 @@ h2 .nav-tab {
margin-left: 10px;
}
@media only screen and (max-width: 900px) {
.about-wrap .feature-section.images-stagger-right .video.image-66 {
margin-right: 3px;
}
}
@media only screen and (max-width: 768px) {
.about-wrap .feature-section .image-66 {
float: none;
}
.about-wrap .feature-section.images-stagger-right .image-66 {
margin-right: 3px;
}
.about-wrap .feature-section.images-stagger-left .image-66 {
margin-left: 3px;
}
}
/*------------------------------------------------------------------------------
23.0 - Misc

File diff suppressed because one or more lines are too long

View File

@ -2312,7 +2312,7 @@ html.wp-toolbar {
}
.wp-core-ui .welcome-panel .button.button-hero {
margin: 15px 0 3px;
margin: 15px 0 3px;
}
.welcome-panel-content {
@ -2378,7 +2378,7 @@ html.wp-toolbar {
}
.welcome-panel .welcome-write-blog {
background-position: 0 -44px;
background-position: 0 -44px;
}
.welcome-panel .welcome-panel-column ul {
@ -2386,8 +2386,8 @@ html.wp-toolbar {
}
.welcome-panel .welcome-panel-column li {
line-height: 16px;
list-style-type: none;
line-height: 16px;
list-style-type: none;
}
@media screen and (max-width: 870px) {
@ -3162,7 +3162,7 @@ ul.category-tabs li,
}
.no-js .category-tabs li.hide-if-no-js {
display: none;
display: none;
}
.category-tabs a,
@ -5766,16 +5766,6 @@ h2 .nav-tab {
display: none !important;
}
.about-wrap p.about-notice {
background-color: #ffffe0;
border: 1px solid #e6db55;
margin: 5px 0 15px;
padding: 0.4em 0.8em;
border-radius: 3px;
-webkit-border-radius: 3px;
}
/* Typography */
.about-wrap p {
@ -5809,8 +5799,8 @@ h2 .nav-tab {
}
.about-wrap h3 {
font-size: 1.5em;
line-height: 1.5em;
font-size: 24px;
margin-bottom: 1em;
padding-top: 20px;
}
@ -5883,18 +5873,79 @@ h2 .nav-tab {
/* Changelog / Update screen */
.about-wrap .feature-section img,
.about-wrap .feature-section .video {
border: none;
margin: 0 1.94% 10px 0;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.about-wrap .feature-section .video video {
max-width: 100%;
}
.about-wrap .feature-section.three-col img {
margin: 0.5em 0 0.5em 5px;
max-width: 100%;
float: none;
}
.ie8 .about-wrap .feature-section.three-col img {
margin-left: 0;
}
.about-wrap .feature-section.images-stagger-right img,
.about-wrap .feature-section.images-stagger-right .video {
float: right;
margin: 0 5px 12px 2em;
}
.about-wrap .feature-section.images-stagger-left img {
float: left;
margin: 0 2em 12px 5px;
}
.about-wrap .feature-section .image-100 {
margin: 0 0 2em 0;
width: 100%;
}
.about-wrap .feature-section .image-66 {
width: 65%;
}
.about-wrap .feature-section .image-66.video {
max-width: 600px;
}
.about-wrap .feature-section .image-50 {
max-width: 50%;
}
.about-wrap .feature-section img.image-30 {
max-width: 31.2381%;
}
.ie8 .about-wrap .feature-section img {
border-width: 1px;
border-style: solid;
}
.about-wrap .images-stagger-right img.image-30:nth-child(2) {
margin-left: 1em;
}
.about-wrap .feature-section.col {
margin-bottom: 0;
}
.about-wrap .feature-section.col h4 {
margin: 0 0 0.6em 0;
margin: 0 0 0.6em 0;
}
.about-wrap .feature-section.col .last-feature {
margin-right: 0;
}
.about-wrap .feature-section.two-col div {
@ -5909,77 +5960,64 @@ h2 .nav-tab {
float: left;
}
.about-wrap .three-col.about-updates .col-1,
.about-wrap .three-col.about-updates .col-3 {
width: 37%;
margin: 0;
.about-wrap .three-col-images {
text-align: center;
}
.about-wrap .three-col.about-updates .col-2 {
width: 16%;
margin: 0 5%;
.about-wrap .three-col-images img {
margin: 0 0 10px;
}
.about-wrap .feature-section.col .last-feature {
margin-right: 0;
.about-wrap .three-col-images .last-feature {
float: right;
}
.about-wrap .three-col.about-updates img {
margin: 0;
.about-wrap .three-col-images .first-feature {
float: left;
}
.about-wrap .changelog .feature-section {
overflow: hidden;
}
.about-wrap .about-passwords {
margin: 20px 0;
padding: 1px 20px 10px;
background-color: #f9f9f9;
}
.about-wrap .about-auto-update {
text-align: center;
background-color: #f9f9ef;
clear: both;
padding: 10px;
}
.about-wrap .about-auto-update.cool {
background-color: #eff9ef;
}
.about-wrap .about-password-meter input {
font-size: 250%;
line-height: 1;
width: 100%;
display: block;
padding: 5px;
}
.about-wrap .about-password-meter #pass-strength-result {
display: block !important;
font-size: 150%;
font-weight: normal !important;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
padding: 17px 0;
margin-bottom: 15px;
}
.about-wrap .feature-section div p img {
float: right;
margin-left: 10px;
max-width: 20%;
}
.about-wrap .changelog li {
list-style-type: disc;
margin-left: 3em;
}
@media only screen and (max-width: 900px) {
.about-wrap .feature-section.images-stagger-left img,
.about-wrap .feature-section.images-stagger-right img,
.about-wrap .feature-section.images-stagger-right .video {
clear: both;
}
.about-wrap .feature-section .video.image-66 {
float: none;
width: 98%;
max-width: 98%;
}
.about-wrap .feature-section.images-stagger-right .video.image-66 {
margin-left: 3px;
}
}
@media only screen and (max-width: 768px) {
.about-wrap .feature-section .image-66 {
float: none;
width: 98%;
max-width: 98%;
}
.about-wrap .feature-section.images-stagger-right .image-66 {
margin-left: 3px;
}
.about-wrap .feature-section.images-stagger-left .image-66 {
margin-right: 3px;
}
}
/* Return to Dashboard Home link */
@ -9257,20 +9295,20 @@ a.widget-control-edit {
(min-resolution: 120dpi) {
.press-this .tagchecklist span a {
background-image: url('../images/xit-2x.gif');
background-size: 20px auto;
background-image: url('../images/xit-2x.gif');
background-size: 20px auto;
}
.js .postbox:hover .handlediv,
.js .stuffbox:hover .handlediv,
.widget-top a.widget-action {
background-image: url('../images/arrows-2x.png');
background-size: 15px 123px;
background-image: url('../images/arrows-2x.png');
background-size: 15px 123px;
}
.widget-top a.widget-action:hover {
background-image: url('../images/arrows-dark-2x.png');
background-size: 15px 123px;
background-image: url('../images/arrows-dark-2x.png');
background-size: 15px 123px;
}
.post-com-count {
@ -9329,8 +9367,8 @@ a.widget-control-edit {
}
.wp-full-overlay .collapse-sidebar-arrow {
background-image: url('../images/arrows-2x.png');
background-size: 15px 123px;
background-image: url('../images/arrows-2x.png');
background-size: 15px 123px;
}
.pressthis a span {

File diff suppressed because one or more lines are too long

View File

@ -386,7 +386,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
$thumbnail = wp_get_attachment_image_src( $id, 'thumbnail' );
set_theme_mod('background_image_thumb', esc_url_raw( $thumbnail[0] ) );
/** This action is documented in wp-admin/custom-header.php */
//duplicate_hook
do_action( 'wp_create_file_in_uploads', $file, $id ); // For replication
$this->updated = true;
}
@ -412,7 +412,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
public function wp_set_background_image() {
if ( ! current_user_can('edit_theme_options') || ! isset( $_POST['attachment_id'] ) ) exit;
$attachment_id = absint($_POST['attachment_id']);
/** This filter is documented in wp-admin/includes/media.php */
//duplicate_hook
$sizes = array_keys(apply_filters( 'image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')) ));
$size = 'thumbnail';
if ( in_array( $_POST['size'], $sizes ) )

View File

@ -712,7 +712,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
if ( ! $image || is_wp_error( $image ) )
wp_die( __( 'Image could not be processed. Please go back and try again.' ), __( 'Image Processing Error' ) );
/** This filter is documented in wp-admin/custom-header.php */
//duplicate_hook
$image = apply_filters( 'wp_create_file_in_uploads', $image, $attachment_id ); // For replication
$url = str_replace(basename($url), basename($image), $url);
@ -854,7 +854,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
if ( ! $cropped || is_wp_error( $cropped ) )
wp_die( __( 'Image could not be processed. Please go back and try again.' ), __( 'Image Processing Error' ) );
/** This filter is documented in wp-admin/custom-header.php */
//duplicate_hook
$cropped = apply_filters( 'wp_create_file_in_uploads', $cropped, $attachment_id ); // For replication
$parent = get_post($attachment_id);
@ -887,18 +887,12 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
// cleanup
$medium = str_replace( basename( $original ), 'midsize-' . basename( $original ), $original );
if ( file_exists( $medium ) ) {
/**
* Filter the path of the file to delete.
*
* @since 2.1.0
*
* @param string $medium Path to the file to delete.
*/
//duplicate_hook
@unlink( apply_filters( 'wp_delete_file', $medium ) );
}
if ( empty( $_POST['create-new-attachment'] ) && empty( $_POST['skip-cropping'] ) ) {
/** This filter is documented in wp-admin/custom-header.php */
//duplicate_hook
@unlink( apply_filters( 'wp_delete_file', $original ) );
}

View File

@ -31,11 +31,6 @@ add_action( 'customize_controls_print_scripts', 'print_head_scripts', 20
add_action( 'customize_controls_print_footer_scripts', '_wp_footer_scripts' );
add_action( 'customize_controls_print_styles', 'print_admin_styles', 20 );
/**
* Fires when Customizer controls are initialized, before scripts are enqueued.
*
* @since 3.4.0
*/
do_action( 'customize_controls_init' );
wp_enqueue_script( 'customize-controls' );
@ -43,11 +38,6 @@ wp_enqueue_style( 'customize-controls' );
wp_enqueue_script( 'accordion' );
/**
* Enqueue Customizer control scripts.
*
* @since 3.4.0
*/
do_action( 'customize_controls_enqueue_scripts' );
// Let's roll.
@ -76,18 +66,7 @@ $body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '
$admin_title = sprintf( __( '%1$s &#8212; WordPress' ), strip_tags( sprintf( __( 'Customize %s' ), $wp_customize->theme()->display('Name') ) ) );
?><title><?php echo $admin_title; ?></title><?php
/**
* Print Customizer control styles.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_styles' );
/**
* Print Customizer control scripts.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_scripts' );
?>
</head>
@ -150,11 +129,6 @@ do_action( 'customize_controls_print_scripts' );
<div id="customize-preview" class="wp-full-overlay-main"></div>
<?php
/**
* Print Customizer control scripts in the footer.
*
* @since 3.4.0
*/
do_action( 'customize_controls_print_footer_scripts' );
// If the frontend and the admin are served from the same domain, load the
@ -172,13 +146,6 @@ do_action( 'customize_controls_print_scripts' );
if ( is_ssl() && ! $cross_domain )
$allowed_urls[] = home_url( '/', 'https' );
/**
* Filter the list of URLs allowed to be clicked and followed in the Customizer preview.
*
* @since 3.4.0
*
* @param array $allowed_urls An array of allowed URLs.
*/
$allowed_urls = array_unique( apply_filters( 'customize_allowed_urls', $allowed_urls ) );
$fallback_url = add_query_arg( array(

View File

@ -239,9 +239,9 @@ do_action( 'add_meta_boxes_' . $post_type, $post );
* @param WP_Post $post Post object.
*/
do_action( 'do_meta_boxes', $post_type, 'normal', $post );
/** This action is documented in wp-admin/edit-form-advanced.php */
//duplicate_hook
do_action( 'do_meta_boxes', $post_type, 'advanced', $post );
/** This action is documented in wp-admin/edit-form-advanced.php */
//duplicate_hook
do_action( 'do_meta_boxes', $post_type, 'side', $post );
add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );

View File

@ -33,11 +33,8 @@ add_meta_box('linkadvanceddiv', __('Advanced'), 'link_advanced_meta_box', null,
do_action('add_meta_boxes', 'link', $link);
do_action('add_meta_boxes_link', $link);
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'normal', $link);
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'advanced', $link);
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', 'link', 'side', $link);
add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );

View File

@ -19,7 +19,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
<div class="about-text"><?php printf( __( 'Thank you for updating to WordPress 3.7! You might not notice a thing, and we&#8217;re okay with that.' ), $display_version ); ?></div>
<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s makes your writing experience even better.' ), $display_version ); ?></div>
<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -190,7 +190,7 @@ function wp_ajax_autocomplete_user() {
if ( ! is_multisite() || ! current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) )
wp_die( -1 );
/** This filter is documented in wp-admin/user-new.php */
//duplicate_hook
if ( ! is_super_admin() && ! apply_filters( 'autocomplete_users_for_site_admins', false ) )
wp_die( -1 );
@ -2002,7 +2002,7 @@ function wp_ajax_save_attachment_compat() {
if ( 'attachment' != $post['post_type'] )
wp_send_json_error();
/** This filter is documented in wp-admin/includes/media.php */
//duplicate_hook
$post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );
if ( isset( $post['errors'] ) ) {
@ -2105,7 +2105,7 @@ function wp_ajax_send_attachment_to_editor() {
$html = stripslashes_deep( $_POST['html'] );
}
/** This filter is documented in wp-admin/includes/media.php */
//duplicate_hook
$html = apply_filters( 'media_send_to_editor', $html, $id, $attachment );
wp_send_json_success( $html );
@ -2146,7 +2146,7 @@ function wp_ajax_send_link_to_editor() {
&& ( 'audio' == $ext_type || 'video' == $ext_type ) )
$type = $ext_type;
/** This filter is documented in wp-admin/includes/media.php */
//duplicate_hook
$html = apply_filters( $type . '_send_to_editor_url', $html, $src, $title );
wp_send_json_success( $html );

View File

@ -308,7 +308,7 @@ foreach ( $columns as $column_name => $column_display_name ) {
if ( $parent ) {
$title = _draft_or_post_title( $post->post_parent );
$parent_type = get_post_type_object( $parent->post_type );
$parent_type = get_post_type_object( $parent->post_type );
?>
<td <?php echo $attributes ?>><strong>
<?php if ( current_user_can( 'edit_post', $post->post_parent ) && $parent_type->show_ui ) { ?>

View File

@ -540,10 +540,8 @@ class WP_Posts_List_Table extends WP_List_Table {
$level++;
$find_main_page = (int) $parent->post_parent;
if ( !isset( $parent_name ) ) {
/** This filter is documented in wp-includes/post-template.php */
if ( !isset( $parent_name ) )
$parent_name = apply_filters( 'the_title', $parent->post_title, $parent->ID );
}
}
}
}

View File

@ -583,7 +583,7 @@ class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
/**
* Upgrader Skin for Automatic WordPress Upgrades
*
* This skin is designed to be used when no output is intended, all output
* This skin is designed to be used when no output is intended, all output
* is captured and stored for the caller to process and log/email/discard.
*
* @package WordPress
@ -591,7 +591,7 @@ class Language_Pack_Upgrader_Skin extends WP_Upgrader_Skin {
* @since 3.7.0
*/
class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
protected $messages = array();
private $messages = array();
function request_filesystem_credentials( $error = false, $context = '' ) {
if ( $context )
@ -599,6 +599,7 @@ class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
// TODO: fix up request_filesystem_credentials(), or split it, to allow us to request a no-output version
// This will output a credentials form in event of failure, We don't want that, so just hide with a buffer
ob_start();
set_current_screen( 'tools' ); // Only here to avoid PHP Notices from screen_icon() which is used within that HTML
$result = parent::request_filesystem_credentials( $error );
ob_end_clean();
return $result;

View File

@ -1097,14 +1097,6 @@ class Theme_Upgrader extends WP_Upgrader {
}
add_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
/**
* Language pack upgrader, for updating translations of plugins, themes, and core.
*
* @package WordPress
* @subpackage Upgrader
* @since 3.7.0
*/
class Language_Pack_Upgrader extends WP_Upgrader {
var $result;
@ -1316,8 +1308,6 @@ class Core_Upgrader extends WP_Upgrader {
function upgrade( $current, $args = array() ) {
global $wp_filesystem, $wp_version;
$start_time = time();
$defaults = array(
'pre_check_md5' => true,
'attempt_rollback' => false,
@ -1371,7 +1361,7 @@ class Core_Upgrader extends WP_Upgrader {
// Copy update-core.php from the new version into place.
if ( !$wp_filesystem->copy($working_dir . '/wordpress/wp-admin/includes/update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true) ) {
$wp_filesystem->delete($working_dir, true);
return new WP_Error( 'copy_failed_for_update_core_file', __( 'The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.' ), 'wp-admin/includes/update-core.php' );
return new WP_Error( 'copy_failed_for_update_core_file', $this->strings['copy_failed'] );
}
$wp_filesystem->chmod($wp_dir . 'wp-admin/includes/update-core.php', FS_CHMOD_FILE);
@ -1404,52 +1394,15 @@ class Core_Upgrader extends WP_Upgrader {
$rollback_result = $this->upgrade( $current, array_merge( $parsed_args, array( 'do_rollback' => true ) ) );
$original_result = $result;
$result = new WP_Error( 'rollback_was_required', $this->strings['rollback_was_required'], (object) array( 'update' => $original_result, 'rollback' => $rollback_result ) );
$result = new WP_Error( 'rollback_was_required', $this->strings['rollback_was_required'], array( 'rollback' => $rollback_result, 'update' => $result ) );
}
}
do_action( 'upgrader_process_complete', $this, array( 'action' => 'update', 'type' => 'core' ) );
// Clear the current updates
delete_site_transient( 'update_core' );
if ( ! $parsed_args['do_rollback'] ) {
$stats = array(
'update_type' => $current->response,
'success' => true,
'fs_method' => $wp_filesystem->method,
'fs_method_forced' => defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' ),
'time_taken' => time() - $start_time,
'attempted' => $current->version,
);
if ( is_wp_error( $result ) ) {
$stats['success'] = false;
// Did a rollback occur?
if ( ! empty( $try_rollback ) ) {
$stats['error_code'] = $original_result->get_error_code();
$stats['error_data'] = $original_result->get_error_data();
// Was the rollback successful? If not, collect its error too.
$stats['rollback'] = ! is_wp_error( $rollback_result );
if ( is_wp_error( $rollback_result ) ) {
$stats['rollback_code'] = $rollback_result->get_error_code();
$stats['rollback_data'] = $rollback_result->get_error_data();
}
} else {
$stats['error_code'] = $result->get_error_code();
$stats['error_data'] = $result->get_error_data();
}
}
wp_version_check( $stats );
}
return $result;
}
// Determines if this WordPress Core version should update to $offered_ver or not
static function should_update_to_version( $offered_ver /* x.y.z */ ) {
static function should_upgrade_to_version( $offered_ver /* x.y.z */ ) {
include ABSPATH . WPINC . '/version.php'; // $wp_version; // x.y.z
$current_branch = implode( '.', array_slice( preg_split( '/[.-]/', $wp_version ), 0, 2 ) ); // x.y
@ -1484,23 +1437,6 @@ class Core_Upgrader extends WP_Upgrader {
if ( version_compare( $wp_version, $offered_ver, '>' ) )
return false;
$failure_data = get_site_option( 'auto_core_update_failed' );
if ( $failure_data ) {
// If this was a critical update failure, cannot update.
if ( ! empty( $failure_data['critical'] ) )
return false;
// Don't claim we can update on update-core.php if we have a non-critical failure logged.
if ( $wp_version == $failure_data['current'] && false !== strpos( $offered_ver, '.1.next.minor' ) )
return false;
// Cannot update if we're retrying the same A to B update that caused a non-critical failure.
// Some non-critical failures do allow retries, like download_failed.
// 3.7.1 => 3.7.2 resulted in files_not_writable, if we are still on 3.7.1 and still trying to update to 3.7.2.
if ( empty( $failure_data['retry'] ) && $wp_version == $failure_data['current'] && $offered_ver == $failure_data['attempted'] )
return false;
}
// 3: 3.7-alpha-25000 -> 3.7-alpha-25678 -> 3.7-beta1 -> 3.7-beta2
if ( $current_is_development_version ) {
if ( ! apply_filters( 'allow_dev_auto_core_updates', $upgrade_dev ) )
@ -1615,27 +1551,15 @@ class File_Upload_Upgrader {
}
/**
* The WordPress automatic background updater.
* WordPress automatic background upgrader.
*
* @package WordPress
* @subpackage Upgrader
* @since 3.7.0
*/
class WP_Automatic_Updater {
class WP_Automatic_Upgrader {
/**
* Tracks update results during processing.
*
* @var array
*/
protected $update_results = array();
/**
* Whether the entire automatic updater is disabled.
*
* @since 3.7.0
*/
public function is_disabled() {
function is_disabled() {
// Background updates are disabled if you don't want file changes.
if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS )
return true;
@ -1644,39 +1568,15 @@ class WP_Automatic_Updater {
return true;
// More fine grained control can be done through the WP_AUTO_UPDATE_CORE constant and filters.
$disabled = defined( 'AUTOMATIC_UPDATER_DISABLED' ) && AUTOMATIC_UPDATER_DISABLED;
$disabled = defined( 'AUTOMATIC_UPDATES_DISABLED' ) && AUTOMATIC_UPDATES_DISABLED;
/**
* Filter whether to entirely disable background updates.
*
* There are more fine-grained filters and controls for selective disabling.
* This filter parallels the AUTOMATIC_UPDATER_DISABLED constant in name.
*
* This also disables update notification emails. That may change in the future.
*
* @since 3.7.0
* @param bool $disabled Whether the updater should be disabled.
*/
return apply_filters( 'automatic_updater_disabled', $disabled );
return apply_filters( 'auto_upgrader_disabled', $disabled );
}
/**
* Check for version control checkouts.
*
* Checks for Subversion, Git, Mercurial, and Bazaar. It recursively looks up the
* filesystem to the top of the drive, erring on the side of detecting a VCS
* checkout somewhere.
*
* ABSPATH is always checked in addition to whatever $context is (which may be the
* wp-content directory, for example). The underlying assumption is that if you are
* using version control *anywhere*, then you should be making decisions for
* how things get updated.
*
* @since 3.7.0
*
* @param string $context The filesystem path to check, in addition to ABSPATH.
* Check for GIT/SVN checkouts.
*/
public function is_vcs_checkout( $context ) {
function is_vcs_checkout( $context ) {
$context_dirs = array( untrailingslashit( $context ) );
if ( $context !== ABSPATH )
$context_dirs[] = untrailingslashit( ABSPATH );
@ -1688,13 +1588,7 @@ class WP_Automatic_Updater {
// Walk up from $context_dir to the root.
do {
$check_dirs[] = $context_dir;
// Once we've hit '/' or 'C:\', we need to stop. dirname will keep returning the input here.
if ( $context_dir == dirname( $context_dir ) )
break;
// Continue one level at a time.
} while ( $context_dir = dirname( $context_dir ) );
} while ( $context_dir != dirname( $context_dir ) && $context_dir = dirname( $context_dir ) );
}
$check_dirs = array_unique( $check_dirs );
@ -1706,73 +1600,43 @@ class WP_Automatic_Updater {
break 2;
}
}
/**
* Filter whether the automatic updater should consider a filesystem location to be potentially
* managed by a version control system.
*
* @since 3.7.0
*
* @param bool $checkout Whether a VCS checkout was discovered at $context or ABSPATH, or anywhere higher.
* @param string $context The filesystem context (a path) against which filesystem status should be checked.
*/
return apply_filters( 'automatic_updates_is_vcs_checkout', $checkout, $context );
return apply_filters( 'auto_upgrade_is_vcs_checkout', $checkout, $context );
}
/**
* Tests to see if we can and should update a specific item.
*
* @since 3.7.0
*
* @param string $type The type of update being checked: 'core', 'theme', 'plugin', 'translation'.
* @param object $item The update offer.
* @param string $context The filesystem context (a path) against which filesystem access and status
* should be checked.
* Tests to see if we can and should upgrade a specific item.
*/
public function should_update( $type, $item, $context ) {
// Used to see if WP_Filesystem is set up to allow unattended updates.
$skin = new Automatic_Upgrader_Skin;
function should_upgrade( $type, $item, $context ) {
if ( $this->is_disabled() )
return false;
// If we can't do an auto core update, we may still be able to email the user.
if ( ! $skin->request_filesystem_credentials( false, $context ) || $this->is_vcs_checkout( $context ) ) {
if ( 'core' == $type )
$this->send_core_update_notification_email( $item );
// Checks to see if WP_Filesystem is set up to allow unattended upgrades.
$skin = new Automatic_Upgrader_Skin;
if ( ! $skin->request_filesystem_credentials( false, $context ) )
return false;
if ( $this->is_vcs_checkout( $context ) )
return false;
// Next up, do we actually have it enabled for this type of update?
switch ( $type ) {
case 'language':
$upgrade = ! empty( $item->autoupdate );
break;
case 'core':
$upgrade = Core_Upgrader::should_upgrade_to_version( $item->current );
break;
default:
case 'plugin':
case 'theme':
$upgrade = false;
break;
}
// Next up, is this an item we can update?
if ( 'core' == $type )
$update = Core_Upgrader::should_update_to_version( $item->current );
else
$update = ! empty( $item->autoupdate );
/**
* Filter whether to automatically update core, a plugin, a theme, or a language.
*
* The dynamic portion of the hook name, $type, refers to the type of update
* being checked. Can be 'core', 'theme', 'plugin', or 'translation'.
*
* Generally speaking, plugins, themes, and major core versions are not updated by default,
* while translations and minor and development versions for core are updated by default.
*
* See the filters allow_dev_auto_core_updates, allow_minor_auto_core_updates, and
* allow_major_auto_core_updates more straightforward filters to adjust core updates.
*
* @since 3.7.0
*
* @param bool $update Whether to update.
* @param object $item The update offer.
*/
$update = apply_filters( 'auto_update_' . $type, $update, $item );
if ( ! $update ) {
if ( 'core' == $type )
$this->send_core_update_notification_email( $item );
// And does the user / plugins want it?
// Plugins may filter on 'auto_upgrade_plugin', and check the 2nd param, $item, to only enable it for certain Plugins/Themes
if ( ! apply_filters( 'auto_upgrade_' . $type, $upgrade, $item ) )
return false;
}
// If it's a core update, are we actually compatible with its requirements?
if ( 'core' == $type ) {
@ -1791,61 +1655,13 @@ class WP_Automatic_Updater {
return true;
}
/**
* Notifies an administrator of a core update.
*
* @since 3.7.0
*
* @param object $item The update offer.
*/
protected function send_core_update_notification_email( $item ) {
$notify = true;
$notified = get_site_option( 'auto_core_update_notified' );
function upgrade( $type, $item ) {
// Don't notify if we've already notified the same email address of the same version.
if ( $notified && $notified['email'] == get_site_option( 'admin_email' ) && $notified['version'] == $item->current )
return false;
// See if we need to notify users of a core update.
$notify = ! empty( $item->notify_email );
/**
* Whether to notify the site administrator of a new core update.
*
* By default, administrators are notified when the update offer received from WordPress.org
* sets a particular flag. This allows for discretion in if and when to notify.
*
* This filter only fires once per release -- if the same email address was already
* notified of the same new version, we won't repeatedly email the administrator.
*
* This filter is also used on about.php to check if a plugin has disabled these notifications.
*
* @since 3.7.0
*
* @param bool $notify Whether the site administrator is notified.
* @param object $item The update offer.
*/
if ( ! apply_filters( 'send_core_update_notification_email', $notify, $item ) )
return false;
$this->send_email( 'manual', $item );
return true;
}
/**
* Update an item, if appropriate.
*
* @since 3.7.0
*
* @param string $type The type of update being checked: 'core', 'theme', 'plugin', 'translation'.
* @param object $item The update offer.
*/
public function update( $type, $item ) {
$skin = new Automatic_Upgrader_Skin;
$skin = new Automatic_Upgrader_Skin();
switch ( $type ) {
case 'core':
// The Core upgrader doesn't use the Upgrader's skin during the actual main part of the upgrade, instead, firing a filter.
// The Core upgrader doesn't use the Upgrader's skin during the actual main part of the upgrade, instead, firing a filter
add_filter( 'update_feedback', array( $skin, 'feedback' ) );
$upgrader = new Core_Upgrader( $skin );
$context = ABSPATH;
@ -1858,14 +1674,14 @@ class WP_Automatic_Updater {
$upgrader = new Theme_Upgrader( $skin );
$context = get_theme_root( $item );
break;
case 'translation':
case 'language':
$upgrader = new Language_Pack_Upgrader( $skin );
$context = WP_CONTENT_DIR; // WP_LANG_DIR;
break;
}
// Determine whether we can and should perform this update.
if ( ! $this->should_update( $type, $item, $context ) )
// Determine whether we can and should perform this upgrade.
if ( ! $this->should_upgrade( $type, $item, $context ) )
return false;
switch ( $type ) {
@ -1883,7 +1699,7 @@ class WP_Automatic_Updater {
$item_name = $plugin_data['Name'];
$skin->feedback( __( 'Updating plugin: %s' ), $item_name );
break;
case 'translation':
case 'language':
$language_item_name = $upgrader->get_name_for_update( $item );
$item_name = sprintf( __( 'Translations for %s' ), $language_item_name );
$skin->feedback( sprintf( __( 'Updating translations for %1$s (%2$s)&#8230;' ), $language_item_name, $item->language ) );
@ -1917,51 +1733,33 @@ class WP_Automatic_Updater {
}
/**
* Kicks off the background update process, looping through all pending updates.
*
* @since 3.7.0
* Kicks off a upgrade request for each item in the upgrade "queue"
*/
public function run() {
global $wpdb, $wp_version;
if ( $this->is_disabled() )
return;
if ( ! is_main_network() || ! is_main_site() )
return;
$lock_name = 'auto_updater.lock';
// Try to lock
$lock_result = $wpdb->query( $wpdb->prepare( "INSERT IGNORE INTO `$wpdb->options` ( `option_name`, `option_value`, `autoload` ) VALUES (%s, %s, 'no') /* LOCK */", $lock_name, time() ) );
if ( ! $lock_result ) {
$lock_result = get_option( $lock_name );
// If we couldn't create a lock, and there isn't a lock, bail
if ( ! $lock_result )
return;
// Check to see if the lock is still valid
if ( $lock_result > ( time() - HOUR_IN_SECONDS ) )
function run() {
$lock_name = 'auto_upgrader.lock';
if ( get_site_option( $lock_name ) ) {
// Test to see if it was set more than an hour ago, if so, cleanup.
if ( get_site_option( $lock_name ) < ( time() - HOUR_IN_SECONDS ) )
delete_site_option( $lock_name );
else // The process is already locked
return;
}
// Update the lock, as by this point we've definately got a lock, just need to fire the actions
update_option( $lock_name, time() );
// Lock upgrades for us for half an hour
if ( ! add_site_option( $lock_name, microtime( true ), HOUR_IN_SECONDS / 2 ) )
return;
// Don't automatically run these thins, as we'll handle it ourselves
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
remove_action( 'upgrader_process_complete', 'wp_version_check' );
remove_action( 'upgrader_process_complete', 'wp_update_plugins' );
remove_action( 'upgrader_process_complete', 'wp_update_themes' );
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
remove_action( 'upgrader_process_complete', 'wp_version_check' );
remove_action( 'upgrader_process_complete', 'wp_update_plugins' );
remove_action( 'upgrader_process_complete', 'wp_update_themes' );
// Next, Plugins
wp_update_plugins(); // Check for Plugin updates
$plugin_updates = get_site_transient( 'update_plugins' );
if ( $plugin_updates && !empty( $plugin_updates->response ) ) {
foreach ( array_keys( $plugin_updates->response ) as $plugin ) {
$this->update( 'plugin', $plugin );
$this->upgrade( 'plugin', $plugin );
}
// Force refresh of plugin update information
wp_clean_plugins_cache();
@ -1972,21 +1770,42 @@ class WP_Automatic_Updater {
$theme_updates = get_site_transient( 'update_themes' );
if ( $theme_updates && !empty( $theme_updates->response ) ) {
foreach ( array_keys( $theme_updates->response ) as $theme ) {
$this->update( 'theme', $theme );
$this->upgrade( 'theme', $theme );
}
// Force refresh of theme update information
wp_clean_themes_cache();
}
// Next, Process any core update
// Next, Process any core upgrade
wp_version_check(); // Check for Core updates
$extra_update_stats = array();
$core_update = find_core_auto_update();
if ( $core_update )
$this->update( 'core', $core_update );
if ( $core_update ) {
$start_time = time();
// Clean up, and check for any pending translations
// (Core_Upgrader checks for core updates)
$core_update_result = $this->upgrade( 'core', $core_update );
delete_site_transient( 'update_core' );
$extra_update_stats['success'] = is_wp_error( $core_update_result ) ? $core_update_result->get_error_code() : true;
$extra_update_stats['error_data'] = is_wp_error( $core_update_result ) ? $core_update_result->get_error_data() : '';
if ( is_wp_error( $core_update_result ) && 'rollback_was_required' == $core_update_result->get_error_code() ) {
$rollback_data = $core_update_result->get_error_data();
$extra_update_stats['success'] = is_wp_error( $rollback_data['update'] ) ? $rollback_data['update']->get_error_code() : $rollback_data['update'];
$extra_update_stats['error_data'] = is_wp_error( $rollback_data['update'] ) ? $rollback_data['update']->get_error_data() : '';
$extra_update_stats['rollback'] = is_wp_error( $rollback_data['rollback'] ) ? $rollback_data['rollback']->get_error_code() : true; // If it's not a WP_Error, the rollback was successful.
$extra_update_stats['rollback_data'] = is_wp_error( $rollback_data['rollback'] ) ? $rollback_data['rollback']->get_error_data() : '';
}
$extra_update_stats['fs_method'] = $GLOBALS['wp_filesystem']->method;
$extra_update_stats['fs_method_forced'] = defined( 'FS_METHOD' ) || has_filter( 'filesystem_method' );
$extra_update_stats['time_taken'] = ( time() - $start_time );
$extra_update_stats['attempted'] = $core_update->version;
}
// Cleanup, and check for any pending translations
wp_version_check( $extra_update_stats ); // check for Core updates
wp_update_themes(); // Check for Theme updates
wp_update_plugins(); // Check for Plugin updates
@ -1994,7 +1813,7 @@ class WP_Automatic_Updater {
$language_updates = wp_get_translation_updates();
if ( $language_updates ) {
foreach ( $language_updates as $update ) {
$this->update( 'translation', $update );
$this->upgrade( 'language', $update );
}
// Clear existing caches
@ -2007,304 +1826,21 @@ class WP_Automatic_Updater {
wp_update_plugins(); // Check for Plugin updates
}
// Send debugging email to all development installs.
if ( ! empty( $this->update_results ) ) {
$development_version = false !== strpos( $wp_version, '-' );
/**
* Filter whether to send a debugging email for each automatic background update.
*
* @since 3.7.0
* @param bool $development_version By default, emails are sent if the install is a development version.
* Return false to avoid the email.
*/
if ( apply_filters( 'automatic_updates_send_debug_email', $development_version ) )
$this->send_debug_email();
if ( ! empty( $this->update_results['core'] ) )
$this->after_core_update( $this->update_results['core'][0] );
}
$this->send_debug_email();
// Clear the lock
delete_option( $lock_name );
delete_site_option( $lock_name );
}
/**
* If we tried to perform a core update, check if we should send an email,
* and if we need to avoid processing future updates.
*
* @param object $update_result The result of the core update. Includes the update offer and result.
*/
protected function after_core_update( $update_result ) {
global $wp_version;
function send_debug_email() {
$core_update = $update_result->item;
$result = $update_result->result;
if ( ! is_wp_error( $result ) ) {
$this->send_email( 'success', $core_update );
return;
}
$error_code = $result->get_error_code();
// Any of these WP_Error codes are critical failures, as in they occurred after we started to copy core files.
// We should not try to perform a background update again until there is a successful one-click update performed by the user.
$critical = false;
if ( $error_code === 'disk_full' || false !== strpos( $error_code, '__copy_dir' ) ) {
$critical = true;
} elseif ( $error_code === 'rollback_was_required' && is_wp_error( $result->get_error_data()->rollback ) ) {
// A rollback is only critical if it failed too.
$critical = true;
$rollback_result = $result->get_error_data()->rollback;
} elseif ( false !== strpos( $error_code, 'do_rollback' ) ) {
$critical = true;
}
if ( $critical ) {
$critical_data = array(
'attempted' => $core_update->current,
'current' => $wp_version,
'error_code' => $error_code,
'error_data' => $result->get_error_data(),
'timestamp' => time(),
'critical' => true,
);
if ( isset( $rollback_result ) ) {
$critical_data['rollback_code'] = $rollback_result->get_error_code();
$critical_data['rollback_data'] = $rollback_result->get_error_data();
}
update_site_option( 'auto_core_update_failed', $critical_data );
$this->send_email( 'critical', $core_update, $result );
return;
}
/*
* Any other WP_Error code (like download_failed or files_not_writable) occurs before
* we tried to copy over core files. Thus, the failures are early and graceful.
*
* We should avoid trying to perform a background update again for the same version.
* But we can try again if another version is released.
*
* For certain 'transient' failures, like download_failed, we should allow retries.
* In fact, let's schedule a special update for an hour from now. (It's possible
* the issue could actually be on WordPress.org's side.) If that one fails, then email.
*/
$send = true;
$transient_failures = array( 'incompatible_archive', 'download_failed', 'insane_distro' );
if ( in_array( $error_code, $transient_failures ) && ! get_site_option( 'auto_core_update_failed' ) ) {
wp_schedule_single_event( time() + HOUR_IN_SECONDS, 'wp_maybe_auto_update' );
$send = false;
}
$n = get_site_option( 'auto_core_update_notified' );
// Don't notify if we've already notified the same email address of the same version of the same notification type.
if ( $n && 'fail' == $n['type'] && $n['email'] == get_site_option( 'admin_email' ) && $n['version'] == $core_update->current )
$send = false;
update_site_option( 'auto_core_update_failed', array(
'attempted' => $core_update->current,
'current' => $wp_version,
'error_code' => $error_code,
'error_data' => $result->get_error_data(),
'timestamp' => time(),
'retry' => in_array( $error_code, $transient_failures ),
) );
if ( $send )
$this->send_email( 'fail', $core_update, $result );
}
/**
* Sends an email upon the completion or failure of a background core update.
*
* @since 3.7.0
*
* @param string $type The type of email to send. Can be one of 'success', 'fail', 'manual', 'critical'.
* @param object $core_update The update offer that was attempted.
* @param mixed $result Optional. The result for the core update. Can be WP_Error.
*/
protected function send_email( $type, $core_update, $result = null ) {
update_site_option( 'auto_core_update_notified', array(
'type' => $type,
'email' => get_site_option( 'admin_email' ),
'version' => $core_update->current,
'timestamp' => time(),
) );
$next_user_core_update = get_preferred_from_update_core();
// If the update transient is empty, use the update we just performed
if ( ! $next_user_core_update )
$next_user_core_update = $core_update;
$newer_version_available = ( 'upgrade' == $next_user_core_update->response && version_compare( $next_user_core_update->version, $core_update, '>' ) );
/**
* Filter whether to send an email following an automatic background core update.
*
* @since 3.7.0
*
* @param bool $send Whether to send the email. Default true.
* @param string $type The type of email to send. Can be one of 'success', 'fail', 'critical'.
* @param object $core_update The update offer that was attempted.
* @param mixed $result The result for the core update. Can be WP_Error.
*/
if ( 'manual' !== $type && ! apply_filters( 'auto_core_update_send_email', true, $type, $core_update, $result ) )
if ( empty( $this->update_results ) )
return;
switch ( $type ) {
case 'success' : // We updated.
/* translators: 1: Site name, 2: WordPress version number. */
$subject = __( '[%1$s] Your site has updated to WordPress %2$s' );
break;
case 'fail' : // We tried to update but couldn't.
case 'manual' : // We can't update (and made no attempt).
/* translators: 1: Site name, 2: WordPress version number. */
$subject = __( '[%1$s] WordPress %2$s is available. Please update!' );
break;
case 'critical' : // We tried to update, started to copy files, then things went wrong.
/* translators: 1: Site name. */
$subject = __( '[%1$s] URGENT: Your site may be down due to a failed update' );
break;
default :
return;
}
// If the auto update is not to the latest version, say that the current version of WP is available instead.
$version = 'success' === $type ? $core_update->current : $next_user_core_update->current;
$subject = sprintf( $subject, wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), $version );
$body = '';
switch ( $type ) {
case 'success' :
$body .= sprintf( __( 'Howdy! Your site at %1$s has been updated automatically to WordPress %2$s.' ), home_url(), $core_update->current );
$body .= "\n\n";
if ( ! $newer_version_available )
$body .= __( 'No further action is needed on your part.' ) . ' ';
// Can only reference the About screen if their update was successful.
list( $about_version ) = explode( '-', $core_update->current, 2 );
$body .= sprintf( __( "For more on version %s, see the About WordPress screen:" ), $about_version );
$body .= "\n" . admin_url( 'about.php' );
if ( $newer_version_available ) {
$body .= "\n\n" . sprintf( __( 'WordPress %s is also now available.' ), $next_user_core_update->current ) . ' ';
$body .= __( 'Updating is easy and only takes a few moments:' );
$body .= "\n" . network_admin_url( 'update-core.php' );
}
break;
case 'fail' :
case 'manual' :
$body .= sprintf( __( 'Please update your site at %1$s to WordPress %2$s.' ), home_url(), $next_user_core_update->current );
$body .= "\n\n";
// Don't show this message if there is a newer version available.
// Potential for confusion, and also not useful for them to know at this point.
if ( 'fail' == $type && ! $newer_version_available )
$body .= __( 'We tried but were unable to update your site automatically.' ) . ' ';
$body .= __( 'Updating is easy and only takes a few moments:' );
$body .= "\n" . network_admin_url( 'update-core.php' );
break;
case 'critical' :
if ( $newer_version_available )
$body .= sprintf( __( 'Your site at %1$s experienced a critical failure while trying to update WordPress to version %2$s.' ), home_url(), $core_update->current );
else
$body .= sprintf( __( 'Your site at %1$s experienced a critical failure while trying to update to the latest version of WordPress, %2$s.' ), home_url(), $core_update->current );
$body .= "\n\n" . __( "This means your site may be offline or broken. Don't panic; this can be fixed." );
$body .= "\n\n" . __( "Please check out your site now. It's possible that everything is working. If it says you need to update, you should do so:" );
$body .= "\n" . network_admin_url( 'update-core.php' );
break;
}
// Updates are important!
if ( $type != 'success' || $newer_version_available )
$body .= "\n\n" . __( 'Keeping your site updated is important for security. It also makes the internet a safer place for you and your readers.' );
// Add a note about the support forums to all emails.
$body .= "\n\n" . __( 'If you experience any issues or need support, the volunteers in the WordPress.org support forums may be able to help.' );
$body .= "\n" . __( 'http://wordpress.org/support/' );
// If things are successful and we're now on the latest, mention plugins and themes if any are out of date.
if ( $type == 'success' && ! $newer_version_available && ( get_plugin_updates() || get_theme_updates() ) ) {
$body .= "\n\n" . __( 'You also have some plugins or themes with updates available. Update them now:' );
$body .= "\n" . network_admin_url();
}
$body .= "\n\n" . __( 'The WordPress Team' ) . "\n";
if ( 'critical' == $type && is_wp_error( $result ) ) {
$body .= "\n***\n\n";
$body .= sprintf( __( 'Your site was running version %s.' ), $GLOBALS['wp_version'] );
$body .= ' ' . __( 'We have some data that describes the error your site encountered.' );
$body .= ' ' . __( 'Your hosting company, support forum volunteers, or a friendly developer may be able to use this information to help you:' );
// If we had a rollback and we're still critical, then the rollback failed too.
// Loop through all errors (the main WP_Error, the update result, the rollback result) for code, data, etc.
if ( 'rollback_was_required' == $result->get_error_code() )
$errors = array( $result, $result->get_error_data()->update, $result->get_error_data()->rollback );
else
$errors = array( $result );
foreach ( $errors as $error ) {
if ( ! is_wp_error( $error ) )
continue;
$error_code = $error->get_error_code();
$body .= "\n\n" . sprintf( __( "Error code: %s" ), $error_code );
if ( 'rollback_was_required' == $error_code )
continue;
if ( $error->get_error_message() )
$body .= "\n" . $error->get_error_message();
$error_data = $error->get_error_data();
if ( $error_data )
$body .= "\n" . implode( ', ', (array) $error_data );
}
$body .= "\n";
}
$to = get_site_option( 'admin_email' );
$headers = '';
$email = compact( 'to', 'subject', 'body', 'headers' );
/**
* Filter the email sent following an automatic background core update.
*
* @since 3.7.0
*
* @param array $email {
* Array of email arguments that will be passed to wp_mail().
*
* @type string $to The email recipient. An array of emails can be returned, as handled by wp_mail().
* @type string $subject The email's subject.
* @type string $body The email message body.
* @type string $headers Any email headers, defaults to no headers.
* }
* @param string $type The type of email being sent. Can be one of 'success', 'fail', 'manual', 'critical'.
* @param object $core_update The update offer that was attempted.
* @param mixed $result The result for the core update. Can be WP_Error.
*/
$email = apply_filters( 'auto_core_update_email', $email, $type, $core_update, $result );
wp_mail( $email['to'], $email['subject'], $email['body'], $email['headers'] );
}
/**
* Prepares and sends an email of a full log of background update results, useful for debugging and geekery.
*
* @since 3.7.0
*/
protected function send_debug_email() {
$update_count = 0;
foreach ( $this->update_results as $type => $updates )
$update_count += count( $updates );
$upgrade_count = 0;
foreach ( $this->update_results as $type => $upgrades )
$upgrade_count += count( $upgrades );
$body = array();
$failures = 0;
@ -2323,8 +1859,8 @@ class WP_Automatic_Updater {
$body[] = '';
}
// Plugins, Themes, Translations
foreach ( array( 'plugin', 'theme', 'translation' ) as $type ) {
// Plugins, Themes, Languages
foreach ( array( 'plugin', 'theme', 'language' ) as $type ) {
if ( ! isset( $this->update_results[ $type ] ) )
continue;
$success_items = wp_list_filter( $this->update_results[ $type ], array( 'result' => true ) );
@ -2351,9 +1887,7 @@ class WP_Automatic_Updater {
$body[] = 'BETA TESTING?';
$body[] = '=============';
$body[] = '';
$body[] = 'This debugging email is sent when you are using a development version of WordPress.';
$body[] = '';
$body[] = 'If you think these failures might be due to a bug in WordPress, could you report it?';
$body[] = 'If you think these failures might be due to a bug in WordPress 3.7, could you report it?';
$body[] = ' * Open a thread in the support forums: http://wordpress.org/support/forum/alphabeta';
$body[] = " * Or, if you're comfortable writing a bug report: http://core.trac.wordpress.org/";
$body[] = '';
@ -2364,31 +1898,20 @@ class WP_Automatic_Updater {
$subject = sprintf( '[%s] Background updates have finished', get_bloginfo( 'name' ) );
}
$body[] = 'UPDATE LOG';
$body[] = '==========';
$body[] = 'UPGRADE LOG';
$body[] = '===========';
$body[] = '';
foreach ( array( 'core', 'plugin', 'theme', 'translation' ) as $type ) {
foreach ( array( 'core', 'plugin', 'theme', 'language' ) as $type ) {
if ( ! isset( $this->update_results[ $type ] ) )
continue;
foreach ( $this->update_results[ $type ] as $update ) {
$body[] = $update->name;
$body[] = str_repeat( '-', strlen( $update->name ) );
foreach ( $update->messages as $message )
foreach ( $this->update_results[ $type ] as $upgrade ) {
$body[] = $upgrade->name;
$body[] = str_repeat( '-', strlen( $upgrade->name ) );
foreach ( $upgrade->messages as $message )
$body[] = " " . html_entity_decode( str_replace( '&#8230;', '...', $message ) );
if ( is_wp_error( $update->result ) ) {
$results = array( 'update' => $update->result );
// If we rolled back, we want to know an error that occurred then too.
if ( 'rollback_was_required' === $update->result->get_error_code() )
$results = (array) $update->result->get_error_data();
foreach ( $results as $result_type => $result ) {
if ( ! is_wp_error( $result ) )
continue;
$body[] = ' ' . ( 'rollback' === $result_type ? 'Rollback ' : '' ) . 'Error: [' . $result->get_error_code() . '] ' . $result->get_error_message();
if ( $result->get_error_data() )
$body[] = ' ' . implode( ', ', (array) $result->get_error_data() );
}
}
if ( is_wp_error( $upgrade->result ) )
$body[] = ' Error: [' . $upgrade->result->get_error_code() . '] ' . $upgrade->result->get_error_message();
$body[] = '';
}
}
@ -2398,4 +1921,4 @@ class WP_Automatic_Updater {
wp_mail( get_site_option( 'admin_email' ), $subject, implode( "\n", $body ) );
}
}
}

View File

@ -142,9 +142,7 @@ function wp_dashboard_setup() {
if ( $update )
update_option( 'dashboard_widget_options', $widget_options );
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', $screen->id, 'normal', '');
/** This action is documented in wp-admin/edit-form-advanced.php */
do_action('do_meta_boxes', $screen->id, 'side', '');
}

View File

@ -1121,8 +1121,8 @@ function wp_update_theme($theme, $feedback = '') {
* This was once used to display attachment links. Now it is deprecated and stubbed.
*
* {@internal Missing Short Description}}
*
* @since 2.0.0
*
* @since 2.0.0
* @deprecated 3.7.0
*
* @param unknown_type $id

View File

@ -367,7 +367,6 @@ function export_wp( $args = array() ) {
$is_sticky = is_sticky( $post->ID ) ? 1 : 0;
?>
<item>
<?php /** This filter is documented in wp-includes/feed.php */ ?>
<title><?php echo apply_filters( 'the_title_rss', $post->post_title ); ?></title>
<link><?php the_permalink_rss() ?></link>
<pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>

View File

@ -622,11 +622,9 @@ function _unzip_file_ziparchive($file, $to, $needed_dirs = array() ) {
* A disk that has zero free bytes has bigger problems.
* Require we have enough space to unzip the file and copy its contents, with a 10% buffer.
*/
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
$available_space = @disk_free_space( WP_CONTENT_DIR );
if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space )
return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), compact( 'uncompressed_size', 'available_space' ) );
}
$available_space = disk_free_space( WP_CONTENT_DIR );
if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space )
return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), compact( 'uncompressed_size', 'available_space' ) );
$needed_dirs = array_unique($needed_dirs);
foreach ( $needed_dirs as $dir ) {
@ -724,11 +722,9 @@ function _unzip_file_pclzip($file, $to, $needed_dirs = array()) {
* A disk that has zero free bytes has bigger problems.
* Require we have enough space to unzip the file and copy its contents, with a 10% buffer.
*/
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
$available_space = @disk_free_space( WP_CONTENT_DIR );
if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space )
return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), compact( 'uncompressed_size', 'available_space' ) );
}
$available_space = disk_free_space( WP_CONTENT_DIR );
if ( $available_space && ( $uncompressed_size * 2.1 ) > $available_space )
return new WP_Error( 'disk_full_unzip_file', __( 'Could not copy files. You may have run out of disk space.' ), compact( 'uncompressed_size', 'available_space' ) );
$needed_dirs = array_unique($needed_dirs);
foreach ( $needed_dirs as $dir ) {

View File

@ -499,7 +499,6 @@ function wp_restore_image($post_id) {
if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
// delete only if it's edited image
if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters('wp_delete_file', $file);
@unlink($delpath);
}
@ -523,7 +522,6 @@ function wp_restore_image($post_id) {
if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ) {
// delete only if it's edited image
if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
@unlink($delpath);
}
@ -724,7 +722,6 @@ function wp_save_image( $post_id ) {
}
if ( $delete ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters('wp_delete_file', $new_path);
@unlink( $delpath );
}

View File

@ -62,7 +62,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
$blog = get_blog_details( $blog_id );
/**
* Fires before a blog is deleted.
* Fires before a blog is deleted.
*
* @since MU
*
@ -295,7 +295,7 @@ function send_confirmation_on_profile_email() {
'newemail' => $_POST['email']
);
update_option( $current_user->ID . '_new_email', $new_user_email );
$email_text = __( 'Dear user,
You recently requested to have the email address on your account changed.
@ -315,10 +315,10 @@ All at ###SITENAME###
* Filter the email text sent when a user changes emails.
*
* The following strings have a special meaning and will get replaced dynamically:
* ###ADMIN_URL### The link to click on to confirm the email change. Required otherwise this functunalty is will break.
* ###EMAIL### The new email.
* ###ADMIN_URL### The link to click on to confirm the email change. Required otherwise this functunalty is will break.
* ###EMAIL### The new email.
* ###SITENAME### The name of the site.
* ###SITEURL### The URL to the site.
* ###SITEURL### The URL to the site.
*
* @since MU
*
@ -448,9 +448,9 @@ function update_user_status( $id, $pref, $value, $deprecated = null ) {
if ( $value == 1 ) {
/**
* Fires after the user is marked as a SPAM user.
*
*
* @since 3.0.0
*
*
* @param int $id ID of the user marked as SPAM.
*/
do_action( 'make_spam_user', $id );
@ -459,7 +459,7 @@ function update_user_status( $id, $pref, $value, $deprecated = null ) {
* Fires after the user is marked as a HAM user. Opposite of SPAM.
*
* @since 3.0.0
*
*
* @param int $id ID of the user marked as HAM.
*/
do_action( 'make_ham_user', $id );
@ -494,10 +494,10 @@ function format_code_lang( $code = '' ) {
'sg' => 'Sango', 'sa' => 'Sanskrit', 'sr' => 'Serbian', 'hr' => 'Croatian', 'si' => 'Sinhala; Sinhalese', 'sk' => 'Slovak', 'sl' => 'Slovenian', 'se' => 'Northern Sami', 'sm' => 'Samoan', 'sn' => 'Shona', 'sd' => 'Sindhi', 'so' => 'Somali', 'st' => 'Sotho, Southern', 'es' => 'Spanish; Castilian', 'sc' => 'Sardinian', 'ss' => 'Swati', 'su' => 'Sundanese', 'sw' => 'Swahili',
'sv' => 'Swedish', 'ty' => 'Tahitian', 'ta' => 'Tamil', 'tt' => 'Tatar', 'te' => 'Telugu', 'tg' => 'Tajik', 'tl' => 'Tagalog', 'th' => 'Thai', 'bo' => 'Tibetan', 'ti' => 'Tigrinya', 'to' => 'Tonga (Tonga Islands)', 'tn' => 'Tswana', 'ts' => 'Tsonga', 'tk' => 'Turkmen', 'tr' => 'Turkish', 'tw' => 'Twi', 'ug' => 'Uighur; Uyghur', 'uk' => 'Ukrainian', 'ur' => 'Urdu', 'uz' => 'Uzbek',
've' => 'Venda', 'vi' => 'Vietnamese', 'vo' => 'Volapük', 'cy' => 'Welsh','wa' => 'Walloon','wo' => 'Wolof', 'xh' => 'Xhosa', 'yi' => 'Yiddish', 'yo' => 'Yoruba', 'za' => 'Zhuang; Chuang', 'zu' => 'Zulu' );
/**
* Filter the language codes.
*
*
* @since MU
*
* @param array $lang_codes Key/value pair of language codes where key is the short version.
@ -677,7 +677,13 @@ function choose_primary_blog() {
<th scope="row" colspan="2" class="th-full">
<?php
$signup_url = network_site_url( 'wp-signup.php' );
/** This filter is documented in wp-login.php */
/**
* Filter the site signup URL.
*
* @since MU
*
* @param string $signup_url The site signup URL.
*/
?>
<a href="<?php echo apply_filters( 'wp_signup_location', $signup_url ); ?>"><?php _e( 'Create a New Site' ); ?></a>
</th>
@ -699,7 +705,7 @@ function grant_super_admin( $user_id ) {
// If global super_admins override is defined, there is nothing to do here.
if ( isset( $super_admins ) )
return false;
/**
* Fires before the user is granted Super Admin privileges.
*
@ -716,7 +722,7 @@ function grant_super_admin( $user_id ) {
if ( $user && ! in_array( $user->user_login, $super_admins ) ) {
$super_admins[] = $user->user_login;
update_site_option( 'site_admins' , $super_admins );
/**
* Fires after the user is granted Super Admin privileges.
*
@ -760,7 +766,7 @@ function revoke_super_admin( $user_id ) {
if ( false !== ( $key = array_search( $user->user_login, $super_admins ) ) ) {
unset( $super_admins[$key] );
update_site_option( 'site_admins', $super_admins );
/**
* Fires after the user's Super Admin privileges are revoked.
*

View File

@ -308,7 +308,7 @@ class Walker_Nav_Menu_Checklist extends Walker_Nav_Menu {
if ( ! empty( $item->label ) ) {
$title = $item->label;
} elseif ( isset( $item->post_type ) ) {
/** This filter is documented in wp-includes/post-template.php */
//duplicate_hook
$title = apply_filters( 'the_title', $item->post_title, $item->ID );
if ( ! empty( $item->front_or_home ) && _x( 'Home', 'nav menu home label' ) !== $title )
$title = sprintf( _x( 'Home: %s', 'nav menu front page title' ), $title );

View File

@ -542,7 +542,7 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false, $silen
if ( ! $silent ) {
/**
* Fires before a plugin is activated in activate_plugin() when the $silent parameter is false.
*
*
* @since 2.9.0
*
* @param string $plugin Plugin path to main plugin file with plugin data.
@ -553,10 +553,10 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false, $silen
/**
* Fires before a plugin is activated in activate_plugin() when the $silent parameter is false.
*
*
* The action concatenates the 'activate_' prefix with the $plugin value passed to
* activate_plugin() to create a dynamically-named action.
*
*
* @since 2.0.0
*
* @param bool $network_wide Whether to enable the plugin for all sites in the network
@ -577,7 +577,7 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false, $silen
if ( ! $silent ) {
/**
* Fires after a plugin has been activated in activate_plugin() when the $silent parameter is false.
*
*
* @since 2.9.0
*
* @param string $plugin Plugin path to main plugin file with plugin data.
@ -627,11 +627,11 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
/**
* Fires for each plugin being deactivated in deactivate_plugins(), before deactivation
* and when the $silent parameter is false.
*
*
* @since 2.9.0
*
* @param string $plugin Plugin path to main plugin file with plugin data.
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* or just the current site. Multisite only. Default is false.
*/
do_action( 'deactivate_plugin', $plugin, $network_deactivating );
@ -657,13 +657,13 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
/**
* Fires for each plugin being deactivated in deactivate_plugins(), after deactivation
* and when the $silent parameter is false.
*
*
* The action concatenates the 'deactivate_' prefix with the plugin's basename
* to create a dynamically-named action.
*
*
* @since 2.0.0
*
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* or just the current site. Multisite only. Default is false.
*/
do_action( 'deactivate_' . $plugin, $network_deactivating );
@ -671,11 +671,11 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
/**
* Fires for each plugin being deactivated in deactivate_plugins(), after deactivation
* and when the $silent parameter is false.
*
*
* @since 2.9.0
*
* @param string $plugin Plugin path to main plugin file with plugin data.
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
* or just the current site. Multisite only. Default is false.
*/
do_action( 'deactivated_plugin', $plugin, $network_deactivating );
@ -931,7 +931,7 @@ function uninstall_plugin($plugin) {
/**
* Fires in uninstall_plugin() once the plugin has been uninstalled.
*
*
* The action concatenates the 'uninstall_' prefix with the basename of the
* plugin passed to {@see uninstall_plugin()} to create a dynamically-named action.
*

View File

@ -270,7 +270,6 @@ function edit_post( $post_data = null ) {
}
$attachment_data = isset( $post_data['attachments'][ $post_ID ] ) ? $post_data['attachments'][ $post_ID ] : array();
/** This filter is documented in wp-admin/includes/media.php */
$post_data = apply_filters( 'attachment_fields_to_save', $post_data, $attachment_data );
}

View File

@ -70,7 +70,7 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) {
*/
$content_from = $compare_from ? apply_filters( "_wp_post_revision_field_$field", $compare_from->$field, $field, $compare_from, 'from' ) : '';
/** This filter is documented in wp-admin/includes/revision.php */
//duplicate_hook
$content_to = apply_filters( "_wp_post_revision_field_$field", $compare_to->$field, $field, $compare_to, 'to' );
$diff = wp_text_diff( $content_from, $content_to, array( 'show_split_view' => true ) );

View File

@ -546,24 +546,8 @@ function populate_options() {
// delete obsolete magpie stuff
$wpdb->query("DELETE FROM $wpdb->options WHERE option_name REGEXP '^rss_[0-9a-f]{32}(_ts)?$'");
// Deletes all expired transients.
// The multi-table delete syntax is used to delete the transient record from table a,
// and the corresponding transient_timeout record from table b.
$time = time();
$wpdb->query("DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE
a.option_name LIKE '\_transient\_%' AND
a.option_name NOT LIKE '\_transient\_timeout\_%' AND
b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
AND b.option_value < $time");
if ( is_main_site() && is_main_network() ) {
$wpdb->query("DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE
a.option_name LIKE '\_site\_transient\_%' AND
a.option_name NOT LIKE '\_site\_transient\_timeout\_%' AND
b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) )
AND b.option_value < $time");
}
// clear transient data
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_%' OR option_name LIKE '\_site\_transient\_%'" );
}
/**

View File

@ -561,7 +561,6 @@ $_old_files = array(
// 3.7
'wp-admin/js/cat.js',
'wp-admin/js/cat.min.js',
'wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.min.js',
);
/**
@ -662,7 +661,7 @@ function update_core($from, $to) {
$versions_file = trailingslashit( $wp_filesystem->wp_content_dir() ) . 'upgrade/version-current.php';
if ( ! $wp_filesystem->copy( $from . $distro . 'wp-includes/version.php', $versions_file ) ) {
$wp_filesystem->delete( $from, true );
return new WP_Error( 'copy_failed_for_version_file', __( 'The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.' ), 'wp-includes/version.php' );
return new WP_Error( 'copy_failed_for_version_file', __( 'Could not copy file.' ) );
}
$wp_filesystem->chmod( $versions_file, FS_CHMOD_FILE );
@ -730,7 +729,7 @@ function update_core($from, $to) {
$error_data = version_compare( $old_wp_version, '3.7-beta2', '>' ) ? array_keys( $files_not_writable ) : '';
if ( $files_not_writable )
return new WP_Error( 'files_not_writable', __( 'The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.' ), implode( ', ', $error_data ) );
return new WP_Error( 'files_not_writable', __( 'Could not copy file.' ), $error_data );
}
}
@ -774,7 +773,7 @@ function update_core($from, $to) {
// If we don't have enough free space, it isn't worth trying again.
// Unlikely to be hit due to the check in unzip_file().
$available_space = @disk_free_space( ABSPATH );
$available_space = disk_free_space( ABSPATH );
if ( $available_space && $total_size >= $available_space ) {
$result = new WP_Error( 'disk_full', __( 'There is not enough free disk space to complete the update.' ) );
} else {
@ -807,10 +806,6 @@ function update_core($from, $to) {
}
}
apply_filters( 'update_feedback', __( 'Disabling Maintenance mode&#8230;' ) );
// Remove maintenance file, we're done with potential site-breaking changes
$wp_filesystem->delete( $maintenance_file );
// 3.5 -> 3.5+ - an empty twentytwelve directory was created upon upgrade to 3.5 for some users, preventing installation of Twenty Twelve.
if ( '3.5' == $old_wp_version ) {
if ( is_dir( WP_CONTENT_DIR . '/themes/twentytwelve' ) && ! file_exists( WP_CONTENT_DIR . '/themes/twentytwelve/style.css' ) ) {
@ -865,6 +860,7 @@ function update_core($from, $to) {
// Handle $result error from the above blocks
if ( is_wp_error($result) ) {
$wp_filesystem->delete($maintenance_file);
$wp_filesystem->delete($from, true);
return $result;
}
@ -891,13 +887,16 @@ function update_core($from, $to) {
else
delete_option('update_core');
apply_filters( 'update_feedback', __( 'Disabling Maintenance mode&#8230;' ) );
// Remove maintenance file, we're done.
$wp_filesystem->delete($maintenance_file);
// Has to be in here, rather than the Upgrader as the filter below will override and kill the process before themes get updated on major updates
do_action( 'upgrader_process_complete', null, array( 'action' => 'update', 'type' => 'core' ) );
// If we made it this far:
do_action( '_core_updated_successfully', $wp_version );
// Clear the option that blocks auto updates after failures, now that we've been successful.
if ( function_exists( 'delete_site_option' ) )
delete_site_option( 'auto_core_update_failed' );
return $wp_version;
}

View File

@ -77,12 +77,12 @@ function find_core_auto_update() {
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$auto_update = false;
$upgrader = new WP_Automatic_Updater;
$upgrader = new WP_Automatic_Upgrader;
foreach ( $updates->updates as $update ) {
if ( 'autoupdate' != $update->response )
continue;
if ( ! $upgrader->should_update( 'core', $update, ABSPATH ) )
if ( ! $upgrader->should_upgrade( 'core', $update, ABSPATH ) )
continue;
if ( ! $auto_update || version_compare( $update->current, $auto_update->current, '>' ) )
@ -344,27 +344,8 @@ function wp_theme_update_row( $theme_key, $theme ) {
}
function maintenance_nag() {
include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
global $upgrading;
$nag = isset( $upgrading );
if ( ! $nag ) {
$failed = get_site_option( 'auto_core_update_failed' );
/*
* If an update failed critically, we may have copied over version.php but not other files.
* In that case, if the install claims we're running the version we attempted, nag.
* This is serious enough to err on the side of nagging.
*
* If we simply failed to update before we tried to copy any files, then assume things are
* OK if they are now running the latest.
*
* This flag is cleared whenever a successful update occurs using Core_Upgrader.
*/
$comparison = ! empty( $failed['critical'] ) ? '>=' : '>';
if ( version_compare( $failed['attempted'], $wp_version, '>=' ) )
$nag = true;
}
if ( ! $nag )
if ( ! isset( $upgrading ) )
return false;
if ( current_user_can('update_core') )
@ -375,4 +356,3 @@ function maintenance_nag() {
echo "<div class='update-nag'>$msg</div>";
}
add_action( 'admin_notices', 'maintenance_nag' );
add_action( 'network_admin_notices', 'maintenance_nag' );

View File

@ -1229,20 +1229,6 @@ function upgrade_370() {
*/
function upgrade_network() {
global $wp_current_db_version, $wpdb;
// Always
if ( is_main_network() ) {
// Deletes all expired transients.
// The multi-table delete syntax is used to delete the transient record from table a,
// and the corresponding transient_timeout record from table b.
$time = time();
$wpdb->query("DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b WHERE
a.meta_key LIKE '\_site\_transient\_%' AND
a.meta_key NOT LIKE '\_site\_transient\_timeout\_%' AND
b.meta_key = CONCAT( '_site_transient_timeout_', SUBSTRING( a.meta_key, 17 ) )
AND b.meta_value < $time");
}
// 2.8
if ( $wp_current_db_version < 11549 ) {
$wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' );

View File

@ -123,13 +123,13 @@ $today = current_time('mysql', 1);
<?php
/**
* Add content to the welcome panel on the admin dashboard.
*
*
* To remove the default welcome panel, use remove_action():
* <code>remove_action( 'welcome_panel', 'wp_welcome_panel' );</code>
*
*
* @since 3.5.0
*/
do_action( 'welcome_panel' );
do_action( 'welcome_panel' );
?>
</div>
<?php endif; ?>

View File

@ -1,80 +0,0 @@
(function($){
var password = 'Gosh, WordPress is grand.',
$input = $('#pass'),
shouldAnimate = true,
timesForAnimation = [280, 300, 305, 310, 315, 325, 330, 345, 360, 370, 380, 400, 450, 500, 600],
resultsCache = {},
indicatorString = $('#pass-strength-result').text();
function updateResult(){
var strength;
if ( typeof( resultsCache[ $input.val() ]) === 'undefined') {
strength = wp.passwordStrength.meter($input.val(), [], $input.val());
resultsCache[ $input.val() ] = strength;
} else {
strength = resultsCache[ $input.val() ];
}
$('#pass-strength-result').removeClass('short bad good strong');
switch ( strength ) {
case 2:
$('#pass-strength-result').addClass('bad').html( pwsL10n['bad'] );
break;
case 3:
$('#pass-strength-result').addClass('good').html( pwsL10n['good'] );
break;
case 4:
$('#pass-strength-result').addClass('strong').html( pwsL10n['strong'] );
break;
default:
$('#pass-strength-result').addClass('short').html( pwsL10n['short'] );
}
}
function resetMeter(){
$input.val('');
$('#pass-strength-result').text(indicatorString);
$('#pass-strength-result').removeClass('short bad good strong');
}
function animate(){
if (shouldAnimate === false)
return;
if ($input.val().length < password.length){
$input.val( password.substr(0, $input.val().length + 1) );
updateResult();
// Look like real typing by changing the speed new letters are added each time
setTimeout( animate, ( timesForAnimation[ Math.floor( Math.random() * timesForAnimation.length ) ] ) );
} else {
resetMeter();
// When we reset, let's wait a bit longer than normal to start again
setTimeout(animate, 700);
}
}
function begin(){
// we async load zxcvbn, so we need to make sure it's loaded before starting
if (typeof(zxcvbn) !== 'undefined')
animate();
else
setTimeout(begin,800);
}
// Turn off the animation on focus
$input.on('focus', function(){
shouldAnimate = false;
resetMeter();
});
// Act like a normal password strength meter
$input.on('keyup', function(){
updateResult();
});
// Start the animation
begin();
})(jQuery);

View File

@ -1 +0,0 @@
!function(a){function b(){var b;switch("undefined"==typeof j[g.val()]?(b=wp.passwordStrength.meter(g.val(),[],g.val()),j[g.val()]=b):b=j[g.val()],a("#pass-strength-result").removeClass("short bad good strong"),b){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}function c(){g.val(""),a("#pass-strength-result").text(k),a("#pass-strength-result").removeClass("short bad good strong")}function d(){h!==!1&&(g.val().length<f.length?(g.val(f.substr(0,g.val().length+1)),b(),setTimeout(d,i[Math.floor(Math.random()*i.length)])):(c(),setTimeout(d,700)))}function e(){"undefined"!=typeof zxcvbn?d():setTimeout(e,800)}var f="Gosh, WordPress is grand.",g=a("#pass"),h=!0,i=[280,300,305,310,315,325,330,345,360,370,380,400,450,500,600],j={},k=a("#pass-strength-result").text();g.on("focus",function(){h=!1,c()}),g.on("keyup",function(){b()}),e()}(jQuery);

View File

@ -14,7 +14,7 @@ var passwordStrength;
if ( ! $.isArray( blacklist ) )
blacklist = [ blacklist.toString() ];
if (password1 != password2 && password2 && password2.length > 0)
if (password1 != password2 && password2.length > 0)
return 5;
var result = zxcvbn( password1, blacklist );

View File

@ -1 +1 @@
window.wp=window.wp||{};var passwordStrength;!function(a){wp.passwordStrength={meter:function(b,c,d){if(a.isArray(c)||(c=[c.toString()]),b!=d&&d&&d.length>0)return 5;var e=zxcvbn(b,c);return e.score},userInputBlacklist:function(){var b,c,d,e,f=[],g=[],h=["user_login","first_name","last_name","nickname","display_name","email","url","description","weblog_title","admin_email"];for(f.push(document.title),f.push(document.URL),c=h.length,b=0;c>b;b++)e=a("#"+h[b]),0!=e.length&&(f.push(e[0].defaultValue),f.push(e.val()));for(d=f.length,b=0;d>b;b++)f[b]&&(g=g.concat(f[b].replace(/\W/g," ").split(" ")));return g=a.grep(g,function(b,c){return""==b||4>b.length?!1:a.inArray(b,g)===c})}},passwordStrength=wp.passwordStrength.meter}(jQuery);
window.wp=window.wp||{};var passwordStrength;!function(a){wp.passwordStrength={meter:function(b,c,d){if(a.isArray(c)||(c=[c.toString()]),b!=d&&d.length>0)return 5;var e=zxcvbn(b,c);return e.score},userInputBlacklist:function(){var b,c,d,e,f=[],g=[],h=["user_login","first_name","last_name","nickname","display_name","email","url","description","weblog_title","admin_email"];for(f.push(document.title),f.push(document.URL),c=h.length,b=0;c>b;b++)e=a("#"+h[b]),0!=e.length&&(f.push(e[0].defaultValue),f.push(e.val()));for(d=f.length,b=0;d>b;b++)f[b]&&(g=g.concat(f[b].replace(/\W/g," ").split(" ")));return g=a.grep(g,function(b,c){return""==b||4>b.length?!1:a.inArray(b,g)===c})}},passwordStrength=wp.passwordStrength.meter}(jQuery);

View File

@ -67,9 +67,9 @@ function allow_subdirectory_install() {
global $wpdb;
/**
* Filter whether to enable the subdirectory install feature in Multisite.
*
*
* @since 3.0.0
*
*
* @param bool true Whether to enable the subdirectory install feature in Multisite. Default is false.
*/
if ( apply_filters( 'allow_subdirectory_install', false ) )

View File

@ -5,6 +5,7 @@
* @package WordPress
* @subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once( dirname( __FILE__ ) . '/admin.php' );
@ -76,13 +77,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
<label for="thread_comments">
<input name="thread_comments" type="checkbox" id="thread_comments" value="1" <?php checked('1', get_option('thread_comments')); ?> />
<?php
/**
* Filter the maximum depth of threaded/nested comments.
*
* @since 2.7.0.
*
* @param int $10 The maximum depth of threaded comments. Default 10.
*/
$maxdeep = (int) apply_filters( 'thread_comments_depth_max', 10 );
$thread_comments_depth = '</label><label for="thread_comments_depth"><select name="thread_comments_depth" id="thread_comments_depth">';
@ -224,17 +219,7 @@ $avatar_defaults = array(
'monsterid' => __('MonsterID (Generated)'),
'retro' => __('Retro (Generated)')
);
/**
* Filter the default avatars.
*
* Avatars are stored in key/value pairs, where the key is option value,
* and the name is the displayed avatar name.
*
* @since 2.6.0
*
* @param array $avatar_defaults Array of default avatars.
*/
$avatar_defaults = apply_filters( 'avatar_defaults', $avatar_defaults );
$avatar_defaults = apply_filters('avatar_defaults', $avatar_defaults);
$default = get_option('avatar_default');
if ( empty($default) )
$default = 'mystery';
@ -250,14 +235,7 @@ foreach ( $avatar_defaults as $default_key => $default_name ) {
$avatar_list .= ' ' . $default_name . '</label>';
$avatar_list .= '<br />';
}
/**
* Filter the HTML output of the default avatar list.
*
* @since 2.6.0
*
* @param string $avatar_list HTML markup of the avatar list.
*/
echo apply_filters( 'default_avatar_select', $avatar_list );
echo apply_filters('default_avatar_select', $avatar_list);
?>
</fieldset></td>

View File

@ -229,14 +229,13 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
<td>
<fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend>
<?php
/**
* Filter the default date formats.
*
* @since 2.7.0
*
* @param array $default_date_formats Array of default date formats.
*/
$date_formats = array_unique( apply_filters( 'date_formats', array( __( 'F j, Y' ), 'Y/m/d', 'm/d/Y', 'd/m/Y' ) ) );
$date_formats = array_unique( apply_filters( 'date_formats', array(
__('F j, Y'),
'Y/m/d',
'm/d/Y',
'd/m/Y',
) ) );
$custom = true;
@ -263,14 +262,12 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
<td>
<fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend>
<?php
/**
* Filter the default time formats.
*
* @since 2.7.0
*
* @param array $default_time_formats Array of default time formats.
*/
$time_formats = array_unique( apply_filters( 'time_formats', array( __( 'g:i a' ), 'g:i A', 'H:i' ) ) );
$time_formats = array_unique( apply_filters( 'time_formats', array(
__('g:i a'),
'g:i A',
'H:i',
) ) );
$custom = true;

View File

@ -150,7 +150,7 @@ else :
<input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked('0', get_option('blog_public')); ?> />
<label for="blog-norobots"><?php _e( 'Discourage search engines from indexing this site' ); ?></label>
<p class="description"><?php _e( 'Note: Neither of these options blocks access to your site &mdash; it is up to search engines to honor your request.' ); ?></p>
<?php
<?php
/**
* Enable the legacy 'Site Visibility' privacy options.
*

View File

@ -28,7 +28,7 @@ get_current_screen()->add_help_tab( array(
'content' => '<p>' . __('Press This is a bookmarklet that makes it easy to blog about something you come across on the web. You can use it to just grab a link, or to post an excerpt. Press This will even allow you to choose from images included on the page and use them in your post. Just drag the Press This link on this screen to your bookmarks bar in your browser, and you&#8217;ll be on your way to easier content creation. Clicking on it while on another website opens a popup window with all these options.') . '</p>',
) );
/** This filter is documented in wp-admin/options.php */
//duplicate_hook
if ( apply_filters( 'enable_post_by_email_configuration', true ) ) {
get_current_screen()->add_help_tab( array(
'id' => 'options-postemail',
@ -131,7 +131,7 @@ do_settings_fields('writing', 'remote_publishing'); // A deprecated section.
</div>
<?php
/** This filter is documented in wp-admin/options.php */
//duplicate_hook
if ( apply_filters( 'enable_post_by_email_configuration', true ) ) {
?>
<h3 class="title"><?php _e('Post via e-mail') ?></h3>
@ -168,7 +168,7 @@ wp_dropdown_categories(array('hide_empty' => 0, 'name' => 'default_email_categor
<?php } ?>
<?php
/** This filter is documented in wp-admin/options-writing.php */
//duplicate_hook
if ( apply_filters( 'enable_update_services_configuration', true ) ) {
?>
<h3 class="title"><?php _e('Update Services') ?></h3>

View File

@ -30,15 +30,15 @@ if ( empty($option_page) ) // This is for back compat and will eventually be rem
$option_page = 'options';
else
/**
* Filter the capability required when using the Settings API.
*
* By default, the options groups for all registered settings require the manage_options capability.
* This filter is required to change the capability required for a certain options page.
*
/**
* Filter the capability required when using the Settings API.
*
* By default, the options groups for all registered settings require the manage_options capability.
* This filter is required to change the capability required for a certain options page.
*
* @since 3.2.0
*
* @param string $capability The capability used for the page, which is manage_options by default.
*
* @param string $capability The capability used for the page, which is manage_options by default.
*/
$capability = apply_filters( "option_page_capability_{$option_page}", $capability );
@ -106,7 +106,7 @@ if ( !is_multisite() ) {
} else {
$whitelist_options['general'][] = 'new_admin_email';
$whitelist_options['general'][] = 'WPLANG';
/**
* Toggle post-by-email functionality.
*
@ -119,8 +119,8 @@ if ( !is_multisite() ) {
}
/**
* Filter the options white list.
*
* Filter the options white list.
*
* @since 2.7.0
*
* @param array White list options.

View File

@ -1,16 +1,16 @@
<?php
/**
* Revisions administration panel
*
*
* Requires wp-admin/includes/revision.php.
*
* @package WordPress
* @subpackage Administration
* @since 2.6.0
*
*
* @param int revision Optional. The revision ID.
* @param string action The action to take.
* Accepts 'restore', 'view' or 'edit'.
* Accepts 'restore', 'view' or 'edit'.
* @param int from The revision to compare from.
* @param int to Optional, required if revision missing. The revision to compare to.
*/

View File

@ -24,7 +24,7 @@ if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes'
function list_core_update( $update ) {
global $wp_local_package, $wpdb, $wp_version;
static $first_pass = true;
if ( 'en_US' == $update->locale && 'en_US' == get_locale() )
$version_string = $update->current;
// If the only available update is a partial builds, it doesn't need a language-specific version string.
@ -32,7 +32,7 @@ function list_core_update( $update ) {
$version_string = $update->current;
else
$version_string = sprintf( "%s&ndash;<strong>%s</strong>", $update->current, $update->locale );
$current = false;
if ( !isset($update->response) || 'latest' == $update->response )
$current = true;
@ -148,14 +148,14 @@ function core_upgrade_preamble() {
if ( wp_http_supports( 'ssl' ) ) {
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new WP_Automatic_Updater;
$upgrader = new WP_Automatic_Upgrader;
$future_minor_update = (object) array(
'current' => $wp_version . '.1.next.minor',
'version' => $wp_version . '.1.next.minor',
'current' => $wp_version . '.1-update-core.php',
'version' => $wp_version . '.1-update-core.php',
'php_version' => $required_php_version,
'mysql_version' => $required_mysql_version,
);
$should_auto_update = $upgrader->should_update( 'core', $future_minor_update, ABSPATH );
$should_auto_update = $upgrader->should_upgrade( 'core', $future_minor_update, ABSPATH );
if ( $should_auto_update )
echo ' ' . __( 'Future security updates will be applied automatically.' );
}
@ -172,8 +172,8 @@ function core_upgrade_preamble() {
if ( isset( $updates[0] ) && $updates[0]->response == 'development' ) {
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new WP_Automatic_Updater;
if ( wp_http_supports( 'ssl' ) && $upgrader->should_update( 'core', $updates[0], ABSPATH ) )
$upgrader = new WP_Automatic_Upgrader;
if ( wp_http_supports( 'ssl' ) && $upgrader->should_upgrade( 'core', $updates[0], ABSPATH ) )
echo '<div class="updated inline"><p><strong>BETA TESTERS:</strong> This site is set up to install updates of future beta versions automatically.</p></div>';
}

View File

@ -116,13 +116,13 @@ Please click the following link to confirm the invite:
if ( is_wp_error( $user_details[ 'errors' ] ) && !empty( $user_details[ 'errors' ]->errors ) ) {
$add_user_errors = $user_details[ 'errors' ];
} else {
/**
/**
* Filter the user_login, aka the username, before it is added to the site.
*
*
* @since 3.0.0
*
* @param string $_REQUEST['user_login'] The sanitized username.
*/
*
* @param string $_REQUEST['user_login'] The sanitized username.
*/
$new_user_login = apply_filters( 'pre_user_login', sanitize_user( wp_unslash( $_REQUEST['user_login'] ), true ) );
if ( isset( $_POST[ 'noconfirmation' ] ) && is_super_admin() ) {
add_filter( 'wpmu_signup_user_notification', '__return_false' ); // Disable confirmation email
@ -188,13 +188,13 @@ get_current_screen()->set_help_sidebar(
wp_enqueue_script('wp-ajax-response');
wp_enqueue_script('user-profile');
/**
/**
* Allows you to enable user auto-complete for non-super admins in multisite.
*
*
* @since 3.4.0
*
*
* @param bool True or false, based on if you enable auto-complete for non-super admins. Default is false.
*/
*/
if ( is_multisite() && current_user_can( 'promote_users' ) && ! wp_is_large_network( 'users' )
&& ( is_super_admin() || apply_filters( 'autocomplete_users_for_site_admins', false ) )
) {
@ -281,11 +281,11 @@ if ( is_multisite() ) {
}
?>
<?php
/**
/**
* Fires inside the adduser form tag.
*
*
* @since 3.0.0
*/
*/
?>
<form action="" method="post" name="adduser" id="adduser" class="validate"<?php do_action('user_new_form_tag');?>>
<input name="action" type="hidden" value="adduser" />
@ -335,7 +335,7 @@ if ( current_user_can( 'create_users') ) {
?>
<p><?php _e('Create a brand new user and add them to this site.'); ?></p>
<?php
/** This action is documented in wp-admin/user-new.php */
//duplicate_hook
?>
<form action="" method="post" name="createuser" id="createuser" class="validate"<?php do_action('user_new_form_tag');?>>
<input name="action" type="hidden" value="createuser" />
@ -376,14 +376,14 @@ foreach ( array( 'user_login' => 'login', 'first_name' => 'firstname', 'last_nam
<th scope="row"><label for="url"><?php _e('Website') ?></label></th>
<td><input name="url" type="text" id="url" class="code" value="<?php echo esc_attr($new_user_uri); ?>" /></td>
</tr>
<?php
/**
<?php
/**
* Filter the display of the password fields.
*
*
* @since 1.5.1
*
*
* @param bool True or false, based on if you want to show the password fields. Default is true.
*/
*/
if ( apply_filters( 'show_password_fields', true ) ) : ?>
<tr class="form-field form-required">
<th scope="row"><label for="pass1"><?php _e('Password'); ?> <span class="description"><?php /* translators: password input field */_e('(required)'); ?></span></label></th>
@ -427,7 +427,7 @@ if ( apply_filters( 'show_password_fields', true ) ) : ?>
</table>
<?php
/** This action is documented in wp-admin/user-new.php */
//duplicate_hook
do_action( 'user_new_form', 'add-new-user' );
?>

View File

@ -320,7 +320,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
<div id="message" class="error"><p><?php echo $errors[$_GET['error']]; ?></p></div>
<?php } ?>
<?php
<?php
/**
* Fires before the Widgets administration page content loads.
*

View File

@ -55,7 +55,7 @@
<div id="author-info">
<div id="author-avatar">
<?php
/** This filter is documented in author.php */
//duplicate_hook
echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentyeleven_author_bio_avatar_size', 68 ) );
?>
</div><!-- #author-avatar -->

View File

@ -528,7 +528,7 @@ function twentyeleven_get_first_url() {
if ( ! $has_url )
$has_url = twentyeleven_url_grabber();
/** This filter is documented in wp-includes/link-template.php */
//duplicate_hook
return ( $has_url ) ? $has_url : apply_filters( 'the_permalink', get_permalink() );
}

View File

@ -55,7 +55,7 @@ class Twenty_Eleven_Ephemera_Widget extends WP_Widget {
ob_start();
extract( $args, EXTR_SKIP );
/** This filter is documented in wp-includes/default-widgets.php */
//duplicate_hook
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Ephemera', 'twentyeleven' ) : $instance['title'], $instance, $this->id_base);
if ( ! isset( $instance['number'] ) )

View File

@ -2,9 +2,9 @@
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Twenty Eleven 1.7\n"
"Project-Id-Version: Twenty Eleven 1.6\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyeleven\n"
"POT-Creation-Date: 2013-10-24 19:42:42+00:00\n"
"POT-Creation-Date: 2013-08-01 18:14:10+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -57,22 +57,22 @@ msgstr ""
msgid "Blog Archives"
msgstr ""
#: archive.php:57 author.php:86 category.php:59 index.php:37 search.php:44
#: tag.php:60
#: archive.php:57 author.php:74 category.php:50 index.php:37 search.php:42
#: tag.php:50
msgid "Nothing Found"
msgstr ""
#: archive.php:61 author.php:90 category.php:63 index.php:41 tag.php:64
#: archive.php:61 author.php:78 category.php:54 index.php:41 tag.php:54
msgid ""
"Apologies, but no results were found for the requested archive. Perhaps "
"searching will help find a related post."
msgstr ""
#: author.php:29
#: author.php:28
msgid "Author Archives: %s"
msgstr ""
#: author.php:60 content-single.php:63
#: author.php:49 content-single.php:60
msgid "About %s"
msgstr ""
@ -85,91 +85,91 @@ msgid ""
"This post is password protected. Enter the password to view any comments."
msgstr ""
#: comments.php:34
#: comments.php:33
msgid "One thought on &ldquo;%2$s&rdquo;"
msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
msgstr[0] ""
msgstr[1] ""
#: comments.php:41 comments.php:62
#: comments.php:40 comments.php:60
msgid "Comment navigation"
msgstr ""
#: comments.php:42 comments.php:63
#: comments.php:41 comments.php:61
msgid "&larr; Older Comments"
msgstr ""
#: comments.php:43 comments.php:64
#: comments.php:42 comments.php:62
msgid "Newer Comments &rarr;"
msgstr ""
#: comments.php:74
#: comments.php:71
msgid "Comments are closed."
msgstr ""
#: content-aside.php:19
#: content-aside.php:17
msgid "Aside"
msgstr ""
#: content-aside.php:24 content-image.php:23 content-link.php:24
#: content-quote.php:24 content-status.php:24 content.php:30
#: content-aside.php:22 content-image.php:21 content-link.php:22
#: content-quote.php:24 content-status.php:21 content.php:30
msgid "Reply"
msgstr ""
#: content-aside.php:24 content-image.php:23 content-link.php:24
#: content-quote.php:24 content-status.php:24 content.php:30
#: content-aside.php:22 content-image.php:21 content-link.php:22
#: content-quote.php:24 content-status.php:21 content.php:30
msgctxt "comments number"
msgid "1"
msgstr ""
#: content-aside.php:24 content-image.php:23 content-link.php:24
#: content-quote.php:24 content-status.php:24 content.php:30
#: content-aside.php:22 content-image.php:21 content-link.php:22
#: content-quote.php:24 content-status.php:21 content.php:30
msgctxt "comments number"
msgid "%"
msgstr ""
#: content-aside.php:35 content-gallery.php:34 content-image.php:29
#: content-link.php:35 content-quote.php:35 content-status.php:48
#: content.php:41 functions.php:375
#: content-aside.php:33 content-gallery.php:32 content-image.php:27
#: content-link.php:33 content-quote.php:35 content-status.php:34
#: content.php:41 functions.php:345
msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: content-aside.php:36 content-featured.php:23 content-gallery.php:52
#: content-image.php:30 content-intro.php:18 content-link.php:36
#: content-aside.php:34 content-featured.php:23 content-gallery.php:50
#: content-image.php:28 content-intro.php:18 content-link.php:34
#: content-page.php:18 content-quote.php:36 content-single.php:24
#: content-status.php:49 content.php:42 image.php:97
#: content-status.php:35 content.php:42 image.php:90
msgid "Pages:"
msgstr ""
#: content-aside.php:44 content-gallery.php:85 content-image.php:66
#: content-link.php:44 content-quote.php:69 content-status.php:57
#: content.php:79 showcase.php:202
#: content-aside.php:42 content-gallery.php:83 content-image.php:64
#: content-link.php:42 content-quote.php:69 content-status.php:43
#: content.php:79 showcase.php:201
msgid "Leave a reply"
msgstr ""
#: content-aside.php:44 content-gallery.php:85 content-image.php:66
#: content-link.php:44 content-quote.php:69 content-status.php:57
#: content.php:79 showcase.php:202
#: content-aside.php:42 content-gallery.php:83 content-image.php:64
#: content-link.php:42 content-quote.php:69 content-status.php:43
#: content.php:79 showcase.php:201
msgid "<b>1</b> Reply"
msgstr ""
#: content-aside.php:44 content-gallery.php:85 content-image.php:66
#: content-link.php:44 content-quote.php:69 content-status.php:57
#: content.php:79 showcase.php:202
#: content-aside.php:42 content-gallery.php:83 content-image.php:64
#: content-link.php:42 content-quote.php:69 content-status.php:43
#: content.php:79 showcase.php:201
msgid "<b>%</b> Replies"
msgstr ""
#: content-aside.php:46 content-featured.php:45 content-gallery.php:88
#: content-image.php:70 content-intro.php:19 content-link.php:46
#: content-aside.php:44 content-featured.php:45 content-gallery.php:86
#: content-image.php:68 content-intro.php:19 content-link.php:44
#: content-page.php:21 content-quote.php:72 content-single.php:52
#: content-status.php:59 content.php:82 functions.php:606 functions.php:634
#: content-status.php:45 content.php:82 functions.php:543 functions.php:571
#: image.php:41
msgid "Edit"
msgstr ""
#. translators: used between list items, there is a space after the comma
#: content-featured.php:29 content-featured.php:38 content-gallery.php:60
#: content-gallery.php:70 content-image.php:49 content-image.php:58
#: content-featured.php:29 content-featured.php:38 content-gallery.php:58
#: content-gallery.php:68 content-image.php:47 content-image.php:56
#: content-quote.php:44 content-quote.php:54 content-single.php:30
#: content-single.php:33 content.php:51 content.php:63
msgid ", "
@ -187,35 +187,35 @@ msgid ""
"\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
msgstr ""
#: content-gallery.php:19
#: content-gallery.php:17
msgid "Gallery"
msgstr ""
#: content-gallery.php:45
#: content-gallery.php:43
msgid "This gallery contains <a %1$s>%2$s photo</a>."
msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
msgstr[0] ""
msgstr[1] ""
#: content-gallery.php:46 showcase.php:121
#: content-gallery.php:44 showcase.php:120
msgid "Permalink to %s"
msgstr ""
#: content-gallery.php:64 content-image.php:53 content-quote.php:48
#: content-gallery.php:62 content-image.php:51 content-quote.php:48
#: content.php:55
msgid "<span class=\"%1$s\">Posted in</span> %2$s"
msgstr ""
#: content-gallery.php:76 content-image.php:61 content-quote.php:60
#: content-gallery.php:74 content-image.php:59 content-quote.php:60
#: content.php:69
msgid "<span class=\"%1$s\">Tagged</span> %2$s"
msgstr ""
#: content-image.php:18
#: content-image.php:16
msgid "Image"
msgstr ""
#: content-image.php:36
#: content-image.php:34
msgid ""
"<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s"
"\">%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> "
@ -223,11 +223,11 @@ msgid ""
"\" rel=\"author\">%6$s</a></span></span>"
msgstr ""
#: content-image.php:41 functions.php:672
#: content-image.php:39 functions.php:608
msgid "View all posts by %s"
msgstr ""
#: content-link.php:19
#: content-link.php:17
msgid "Link"
msgstr ""
@ -254,11 +254,11 @@ msgid ""
"\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
msgstr ""
#: content-single.php:67
#: content-single.php:64
msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: content-status.php:19
#: content-status.php:16
msgid "Status"
msgstr ""
@ -266,17 +266,17 @@ msgstr ""
msgid "Featured"
msgstr ""
#. #-#-#-#-# twentyeleven.pot (Twenty Eleven 1.7) #-#-#-#-#
#. #-#-#-#-# twentyeleven.pot (Twenty Eleven 1.6) #-#-#-#-#
#. Author URI of the plugin/theme
#: footer.php:28
#: footer.php:27
msgid "http://wordpress.org/"
msgstr ""
#: footer.php:28
#: footer.php:27
msgid "Semantic Personal Publishing Platform"
msgstr ""
#: footer.php:28
#: footer.php:27
msgid "Proudly powered by %s"
msgstr ""
@ -285,108 +285,108 @@ msgid "Primary Menu"
msgstr ""
#. translators: header image description
#: functions.php:184
#: functions.php:164
msgid "Wheel"
msgstr ""
#. translators: header image description
#: functions.php:190
#: functions.php:170
msgid "Shore"
msgstr ""
#. translators: header image description
#: functions.php:196
#: functions.php:176
msgid "Trolley"
msgstr ""
#. translators: header image description
#: functions.php:202
#: functions.php:182
msgid "Pine Cone"
msgstr ""
#. translators: header image description
#: functions.php:208
#: functions.php:188
msgid "Chessboard"
msgstr ""
#. translators: header image description
#: functions.php:214
#: functions.php:194
msgid "Lanterns"
msgstr ""
#. translators: header image description
#: functions.php:220
#: functions.php:200
msgid "Willow"
msgstr ""
#. translators: header image description
#: functions.php:226
#: functions.php:206
msgid "Hanoi Plant"
msgstr ""
#: functions.php:443
#: functions.php:394
msgid "Main Sidebar"
msgstr ""
#: functions.php:452
#: functions.php:403
msgid "Showcase Sidebar"
msgstr ""
#: functions.php:454
#: functions.php:405
msgid "The sidebar for the optional Showcase Template"
msgstr ""
#: functions.php:462
#: functions.php:413
msgid "Footer Area One"
msgstr ""
#: functions.php:464 functions.php:474 functions.php:484
#: functions.php:415 functions.php:425 functions.php:435
msgid "An optional widget area for your site footer"
msgstr ""
#: functions.php:472
#: functions.php:423
msgid "Footer Area Two"
msgstr ""
#: functions.php:482
#: functions.php:433
msgid "Footer Area Three"
msgstr ""
#: functions.php:506 single.php:18
#: functions.php:453 single.php:18
msgid "Post navigation"
msgstr ""
#: functions.php:507
#: functions.php:454
msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
msgstr ""
#: functions.php:508
#: functions.php:455
msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: functions.php:606
#: functions.php:543
msgid "Pingback:"
msgstr ""
#. translators: 1: comment author, 2: date and time
#: functions.php:623
#: functions.php:560
msgid "%1$s on %2$s <span class=\"says\">said:</span>"
msgstr ""
#. translators: 1: date, 2: time
#: functions.php:629
#: functions.php:566
msgid "%1$s at %2$s"
msgstr ""
#: functions.php:638
#: functions.php:575
msgid "Your comment is awaiting moderation."
msgstr ""
#: functions.php:647
#: functions.php:584
msgid "Reply <span>&darr;</span>"
msgstr ""
#: functions.php:666
#: functions.php:602
msgid ""
"<span class=\"sep\">Posted on </span><a href=\"%1$s\" title=\"%2$s\" rel="
"\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\">%4$s</time></"
@ -395,19 +395,19 @@ msgid ""
"\"author\">%7$s</a></span></span>"
msgstr ""
#: header.php:43
#: header.php:45
msgid "Page %s"
msgstr ""
#: header.php:133
#: header.php:129
msgid "Main menu"
msgstr ""
#: header.php:135
#: header.php:131
msgid "Skip to primary content"
msgstr ""
#: header.php:136
#: header.php:132
msgid "Skip to secondary content"
msgstr ""
@ -431,23 +431,23 @@ msgid ""
"in <a href=\"%6$s\" title=\"Return to %7$s\" rel=\"gallery\">%8$s</a>"
msgstr ""
#: inc/theme-options.php:56 inc/theme-options.php:530
#: inc/theme-options.php:55 inc/theme-options.php:474
msgid "Color Scheme"
msgstr ""
#: inc/theme-options.php:62 inc/theme-options.php:547
#: inc/theme-options.php:61 inc/theme-options.php:491
msgid "Link Color"
msgstr ""
#: inc/theme-options.php:63
#: inc/theme-options.php:62
msgid "Default Layout"
msgstr ""
#: inc/theme-options.php:95 inc/theme-options.php:96
#: inc/theme-options.php:94 inc/theme-options.php:95
msgid "Theme Options"
msgstr ""
#: inc/theme-options.php:111
#: inc/theme-options.php:110
msgid ""
"Some themes provide customization options that are grouped together on a "
"Theme Options screen. If you change themes, options may change or disappear, "
@ -455,14 +455,14 @@ msgid ""
"following Theme Options:"
msgstr ""
#: inc/theme-options.php:113
#: inc/theme-options.php:112
msgid ""
"<strong>Color Scheme</strong>: You can choose a color palette of \"Light"
"\" (light background with dark text) or \"Dark\" (dark background with light "
"text) for your site."
msgstr ""
#: inc/theme-options.php:114
#: inc/theme-options.php:113
msgid ""
"<strong>Link Color</strong>: You can choose the color used for text links on "
"your site. You can enter the HTML color or hex code, or you can choose "
@ -470,104 +470,104 @@ msgid ""
"wheel."
msgstr ""
#: inc/theme-options.php:115
#: inc/theme-options.php:114
msgid ""
"<strong>Default Layout</strong>: You can choose if you want your site&#8217;"
"s default layout to have a sidebar on the left, the right, or not at all."
msgstr ""
#: inc/theme-options.php:117
#: inc/theme-options.php:116
msgid ""
"Remember to click \"Save Changes\" to save any changes you have made to the "
"theme options."
msgstr ""
#: inc/theme-options.php:119
#: inc/theme-options.php:118
msgid "For more information:"
msgstr ""
#: inc/theme-options.php:120
#: inc/theme-options.php:119
msgid ""
"<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" "
"target=\"_blank\">Documentation on Theme Options</a>"
msgstr ""
#: inc/theme-options.php:121
#: inc/theme-options.php:120
msgid ""
"<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support Forums</"
"a>"
msgstr ""
#: inc/theme-options.php:128
#: inc/theme-options.php:127
msgid "Overview"
msgstr ""
#: inc/theme-options.php:150
#: inc/theme-options.php:149
msgid "Light"
msgstr ""
#: inc/theme-options.php:156
#: inc/theme-options.php:155
msgid "Dark"
msgstr ""
#: inc/theme-options.php:181
#: inc/theme-options.php:173
msgid "Content on left"
msgstr ""
#: inc/theme-options.php:186
#: inc/theme-options.php:178
msgid "Content on right"
msgstr ""
#: inc/theme-options.php:191
#: inc/theme-options.php:183
msgid "One-column, no sidebar"
msgstr ""
#: inc/theme-options.php:298
#: inc/theme-options.php:273
msgid "Select a Color"
msgstr ""
#: inc/theme-options.php:301
#: inc/theme-options.php:276
msgid "Default color: %s"
msgstr ""
#: inc/theme-options.php:337
#: inc/theme-options.php:312
msgid "%s Theme Options"
msgstr ""
#: inc/theme-options.php:554
#: inc/theme-options.php:498
msgid "Layout"
msgstr ""
#: inc/widgets.php:23
#: inc/widgets.php:19
msgid ""
"Use this widget to list your recent Aside, Status, Quote, and Link posts"
msgstr ""
#: inc/widgets.php:24
#: inc/widgets.php:20
msgid "Twenty Eleven Ephemera"
msgstr ""
#: inc/widgets.php:59
#: inc/widgets.php:52
msgid "Ephemera"
msgstr ""
#: inc/widgets.php:98 inc/widgets.php:107
#: inc/widgets.php:91 inc/widgets.php:100
msgid "0 <span class=\"reply\">comments &rarr;</span>"
msgstr ""
#: inc/widgets.php:98 inc/widgets.php:107
#: inc/widgets.php:91 inc/widgets.php:100
msgid "1 <span class=\"reply\">comment &rarr;</span>"
msgstr ""
#: inc/widgets.php:98 inc/widgets.php:107
#: inc/widgets.php:91 inc/widgets.php:100
msgid "% <span class=\"reply\">comments &rarr;</span>"
msgstr ""
#: inc/widgets.php:170
#: inc/widgets.php:150
msgid "Title:"
msgstr ""
#: inc/widgets.php:173
#: inc/widgets.php:153
msgid "Number of posts to show:"
msgstr ""
@ -575,7 +575,7 @@ msgstr ""
msgid "Search Results for: %s"
msgstr ""
#: search.php:48
#: search.php:46
msgid ""
"Sorry, but nothing matched your search criteria. Please try again with some "
"different keywords."
@ -585,15 +585,15 @@ msgstr ""
msgid "Search"
msgstr ""
#: showcase.php:78
#: showcase.php:77
msgid "Featured Post"
msgstr ""
#: showcase.php:151
#: showcase.php:150
msgid "Featuring: %s"
msgstr ""
#: showcase.php:161
#: showcase.php:160
msgid "Recent Posts"
msgstr ""

View File

@ -4,7 +4,7 @@ Theme URI: http://wordpress.org/themes/twentyeleven
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats.
Version: 1.7
Version: 1.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready

View File

@ -278,7 +278,7 @@ a:focus {
a:active,
a:hover {
color: #55d737;
color: #5ff23d;
outline: 0;
}

View File

@ -118,14 +118,14 @@ endif; // twentyfourteen_setup
add_action( 'after_setup_theme', 'twentyfourteen_setup' );
/**
* Adjust content_width value for image attachment template.
* Adjust content_width value for full-width and attachment templates.
*
* @since Twenty Fourteen 1.0
*
* @return void
*/
function twentyfourteen_content_width() {
if ( is_attachment() && wp_attachment_is_image() )
if ( is_attachment() )
$GLOBALS['content_width'] = 810;
}
add_action( 'template_redirect', 'twentyfourteen_content_width' );
@ -239,7 +239,7 @@ function twentyfourteen_scripts() {
if ( is_active_sidebar( 'sidebar-3' ) )
wp_enqueue_script( 'jquery-masonry' );
wp_enqueue_script( 'twentyfourteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20131011', true );
wp_enqueue_script( 'twentyfourteen-theme', get_template_directory_uri() . '/js/theme.js', array( 'jquery' ), '20130820', true );
// Add Lato font used in the main stylesheet.
wp_enqueue_style( 'twentyfourteen-lato', twentyfourteen_font_url(), array(), null );
@ -374,11 +374,6 @@ function twentyfourteen_body_classes( $classes ) {
if ( is_multi_author() )
$classes[] = 'group-blog';
if ( get_header_image() )
$classes[] = 'header-image';
else
$classes[] = 'masthead-fixed';
if ( is_archive() || is_search() || is_home() )
$classes[] = 'list-view';

View File

@ -39,17 +39,21 @@
<div class="header-main">
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
<div class="search-toggle">
<a href="#search-container" class="screen-reader-text"><?php _e( 'Search', 'twentyfourteen' ); ?></a>
<div class="header-extra">
<div class="search-toggle">
<a href="#search-container"><?php _e( 'Search', 'twentyfourteen' ); ?></a>
</div>
</div>
<nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
<h1 class="menu-toggle"><?php _e( 'Primary Menu', 'twentyfourteen' ); ?></h1>
<a class="screen-reader-text skip-link" href="#content"><?php _e( 'Skip to content', 'twentyfourteen' ); ?></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
<nav role="navigation" class="site-navigation primary-navigation">
<h1 class="screen-reader-text"><?php _e( 'Primary Menu', 'twentyfourteen' ); ?></h1>
<a class="screen-reader-text skip-link" href="#content"><?php _e( 'Skip to content', 'twentyfourteen' ); ?></a></a>
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
</nav>
</div>
<div id="mobile-navigations" class="hide"></div>
<div id="search-container" class="search-box-wrapper hide">
<div class="search-box clear">
<?php get_search_form(); ?>

View File

@ -1,7 +0,0 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="5px" height="5px" viewBox="0 0 5 5" enable-background="new 0 0 5 5" xml:space="preserve">
<g>
<polygon points="1,0 0,1 0,5 5,0 "/>
<polygon points="5,5 5,1 1,5 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 322 B

View File

@ -1,7 +0,0 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="5px" height="5px" viewBox="0 0 5 5" enable-background="new 0 0 5 5" xml:space="preserve">
<g>
<polygon fill="#FFFFFF" points="1,0 0,1 0,5 5,0 "/>
<polygon fill="#FFFFFF" points="5,5 5,1 1,5 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 352 B

View File

@ -55,8 +55,8 @@ add_action( 'customize_preview_init', 'twentyfourteen_customize_preview_js' );
function twentyfourteen_generate_accent_colors( $color ) {
$color = sanitize_hex_color( $color );
set_theme_mod( 'accent_lighter', twentyfourteen_adjust_color( $color, 29 ) );
set_theme_mod( 'accent_much_lighter', twentyfourteen_adjust_color( $color, 49 ) );
set_theme_mod( 'accent_lighter', twentyfourteen_adjust_color( $color, 14 ) );
set_theme_mod( 'accent_much_lighter', twentyfourteen_adjust_color( $color, 71 ) );
return $color;
}
@ -115,30 +115,41 @@ function twentyfourteen_customizer_styles() {
$accent_much_lighter = get_theme_mod( 'accent_much_lighter' );
$css = '/* Custom accent color. */
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover,
a,
.entry-title a:hover,
.cat-links a:hover,
.site-content .post-navigation a:hover,
.site-content .image-navigation a:hover,
.comment-author a:hover,
.comment-metadata a:hover,
.comment-list .trackback a:hover,
.comment-list .pingback a:hover,
.paging-navigation .page-numbers.current,
.content-sidebar.widget-area a:hover,
.content-sidebar .widget_twentyfourteen_ephemera .post-format-archive-link {
color: ' . $accent_color . ';
}
button,
.contributor-posts-link,
input[type="button"],
html input[type="button"],
input[type="reset"],
input[type="submit"],
.search-toggle,
.hentry .mejs-controls .mejs-time-rail .mejs-time-current,
.header-extra,
.search-toggle,
.primary-navigation ul ul,
.primary-navigation li:hover > a,
.page-links a:hover,
.widget_calendar tbody a {
background-color: ' . $accent_color . ';
}
@media screen and (min-width: 782px) {
.primary-navigation ul ul,
.primary-navigation li:hover > a {
background-color: ' . $accent_color . ';
}
}
::-moz-selection {
background: ' . $accent_color . ';
}
@ -147,64 +158,47 @@ function twentyfourteen_customizer_styles() {
background: ' . $accent_color . ';
}
.page-links a:hover,
.paging-navigation .page-numbers.current {
border-color: ' . $accent_color . ';
}
/* Generated variant of custom accent color: slightly lighter. */
button:hover,
button:focus,
.contributor-posts-link:hover,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.search-toggle:hover,
.search-toggle.active,
.search-box,
.primary-navigation ul ul a:hover,
button:hover,
html input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
button:focus,
html input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
.widget_calendar tbody a:hover {
background-color: ' . $accent_lighter . ';
}
/* Generated variant of custom accent color: much lighter. */
button:active,
.contributor-posts-link:active,
input[type="button"]:active,
html input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active,
.page-links a:hover {
input[type="submit"]:active {
background-color: ' . $accent_much_lighter . ';
}
a:hover,
a:focus,
a:active,
.site-navigation .current_page_item > a,
.site-navigation .current_page_ancestor > a,
.site-navigation .current-menu-item > a,
.site-navigation .current-menu-ancestor > a,
.primary-navigation li.current_page_item > a,
.primary-navigation li.current-menu-item > a,
.secondary-navigation a:hover,
.entry-title a:hover,
.cat-links a:hover,
.post-navigation a:hover,
.image-navigation a:hover,
.comment-author a:hover,
.comment-list .pingback a:hover,
.comment-list .trackback a:hover,
.comment-metadata a:hover,
.footer-sidebar a:hover,
.primary-sidebar a:hover,
.content-sidebar .widget_twentyfourteen_ephemera .post-format-archive-link:hover,
.featured-content a:hover {
#secondary .current_page_item > a,
#secondary .current-menu-item > a,
.featured-content a:hover,
.featured-content .more-link,
.widget-area a:hover {
color: ' . $accent_much_lighter . ';
}
.page-links a:hover,
.paging-navigation a:hover {
border-color: ' . $accent_much_lighter . ';
}';
wp_add_inline_style( 'twentyfourteen-style', $css );

View File

@ -340,7 +340,7 @@ class Featured_Content {
<input class="small-text" type="number" step="1" min="1" max="<?php echo esc_attr( self::$max_posts ); ?>" id="featured-content-quantity" name="featured-content[quantity]" value="<?php echo esc_attr( $settings['quantity'] ); ?>">
</p>
<p>
<input type="checkbox" id="featured-content-hide-tag" name="featured-content[hide-tag]" <?php checked( $settings['hide-tag'], 1 ); ?>>
<input type="checkbox" id="featured-content-hide-tag" name="featured-content[hide-tag]" <?php checked( $settings['hide-tag'], 1 ); ?>">
<label for="featured-content-hide-tag"><?php _e( 'Hide tag from displaying in post meta and tag clouds.', 'twentyfourteen' ); ?></label>
</p>
</div>

View File

@ -80,12 +80,8 @@ function twentyfourteen_post_nav() {
<h1 class="screen-reader-text"><?php _e( 'Post navigation', 'twentyfourteen' ); ?></h1>
<div class="nav-links">
<?php
if ( is_attachment() ) :
previous_post_link( '%link', __( '<span class="meta-nav">Published In</span>%title', 'twentyfourteen' ) );
else :
previous_post_link( '%link', __( '<span class="meta-nav">Previous Post</span>%title', 'twentyfourteen' ) );
next_post_link( '%link', __( '<span class="meta-nav">Next Post</span>%title', 'twentyfourteen' ) );
endif;
?>
</div><!-- .nav-links -->
</nav><!-- .navigation -->

View File

@ -166,7 +166,7 @@ class Twenty_Fourteen_Ephemera_Widget extends WP_Widget {
the_title( '<h1 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h1>' );
endif;
printf( __( '<span class="entry-date"><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5$s</a></span></span>', 'twentyfourteen' ),
printf( __( '<span class="entry-date"><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5s</a></span></span>', 'twentyfourteen' ),
esc_url( get_permalink() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),

View File

@ -1,101 +0,0 @@
( function( $ ) {
var body = $( 'body' ),
_window = $( window );
/**
* Enables menu toggle for small screens.
*/
( function() {
var nav = $( '#primary-navigation' ), button, menu;
if ( ! nav )
return;
button = nav.find( '.menu-toggle' );
if ( ! button )
return;
// Hide button if menu is missing or empty.
menu = nav.find( '.nav-menu' );
if ( ! menu || ! menu.children().length ) {
button.hide();
return;
}
$( '.menu-toggle' ).on( 'click.twentyfourteen', function() {
nav.toggleClass( 'toggled-on' );
} );
} )();
/**
* Makes "skip to content" link work correctly in IE9 and Chrome for better
* accessibility.
*
* @link http://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/
*/
_window.on( 'hashchange.twentyfourteen', function() {
var element = document.getElementById( location.hash.substring( 1 ) );
if ( element ) {
if ( ! /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) )
element.tabIndex = -1;
element.focus();
};
} );
$( function() {
/**
* Search toggle.
*/
$( '.search-toggle' ).on( 'click.twentyfourteen', function() {
var that = $( this ),
wrapper = $( '.search-box-wrapper' );
that.toggleClass( 'active' );
wrapper.toggleClass( 'hide' );
if ( that.is( '.active' ) )
wrapper.find( '.search-field' ).focus();
} );
/**
* Fixed navbar.
*
* The callback on the scroll event is only added if there is a header
* image and we are not on mobile.
*/
if ( body.is( '.header-image' ) && _window.width() > 781 ) {
var toolbarOffset = body.is( '.admin-bar' ) ? $( '#wpadminbar' ).height() : 0,
mastheadOffset = $( '#masthead' ).offset().top - toolbarOffset;
_window.on( 'scroll.twentyfourteen', function() {
if ( window.scrollY > mastheadOffset )
body.addClass( 'masthead-fixed' );
else
body.removeClass( 'masthead-fixed' );
} );
}
/**
* Focus styles for primary menu.
*/
$( '.primary-navigation' ).find( 'a' ).on( 'focus.twentyfourteen blur.twentyfourteen', function() {
$( this ).parents().toggleClass( 'focus' );
} );
} );
/**
* Arranges footer widgets vertically.
*/
if ( $.isFunction( $.fn.masonry ) ) {
$( '#footer-sidebar' ).masonry( {
itemSelector: '.widget',
columnWidth: function( containerWidth ) {
return containerWidth / 4;
},
gutterWidth: 0,
isResizable: true,
isRTL: $( 'body' ).is( '.rtl' )
} );
}
} )( jQuery );

View File

@ -0,0 +1,124 @@
( function( $ ) {
$( document ).ready( function() {
var $primaryNaviClone,
$secondaryNaviClone,
$masthead = $( '#masthead' ),
$secondaryTop = $( '#secondary-top' ),
$mobileNavigations = $( '#mobile-navigations'),
$searchBoxWrapper = $( 'div.search-box-wrapper' ),
$searchToggle = $( 'div.search-toggle' ),
timeout = false;
// Toggle function.
function menuToggle() {
$( 'span#nav-toggle' ).toggleClass( 'active' );
$masthead.find( '#mobile-navigations' ).toggleClass( 'hide' );
}
// Click event for toggle the search
$searchToggle.click( function() {
$( this ).toggleClass( 'active' );
$searchBoxWrapper.toggleClass( 'hide' );
if ( $( this ).hasClass( 'active' ) )
$searchBoxWrapper.find( '.search-field' ).focus();
} );
// DOM manipulations for mobile header
function mobileHeader() {
// Check if the toggler exists. If not add it.
if ( ! $( '#nav-toggle' ).length )
$( '<span id="nav-toggle" class="genericon" />' ).appendTo( $masthead );
// Clone and detach the primary navigation for use later
$primaryNaviClone = $masthead.find( 'nav.primary-navigation' ).detach();
// Clone and detach the secondary navigation for use later
$secondaryNaviClone = $secondaryTop.find( 'nav.secondary-navigation' ).detach();
// Prepend the primary navigation clone to #mobile-navigations and remove the class and add an id
$primaryNaviClone.prependTo( $mobileNavigations ).removeClass( 'primary-navigation' ).addClass( 'mobile-navigation' ).attr( 'id', 'primary-mobile-navigation' );
// Append the secondary navigation clone to #mobile-navigations and remove the class and add an id
$secondaryNaviClone.appendTo( $mobileNavigations ).removeClass( 'secondary-navigation' ).addClass( 'mobile-navigation' ).attr( 'id', 'secondary-mobile-navigation' );
// Remove the click event first and bind it after to make sure it's invoked once.
$( 'span#nav-toggle' ).off( 'click', menuToggle ).click( menuToggle );
};
// DOM manupilations for desktop header
function normalHeader() {
// Check if the toggler exists. If it does remove it.
if ( $( 'span#nav-toggle').length )
$( 'span#nav-toggle' ).remove();
// Clone and detach the primary mobile navigation for use later
$primaryNaviClone = $mobileNavigations.find( '#primary-mobile-navigation' ).detach();
// Clone and detach the secondary mobile navigation for use later
$secondaryNaviClone = $mobileNavigations.find( '#secondary-mobile-navigation' ).detach();
// Append the secondary navigation clone to #mobile-navigations and remove the class and add an id
$primaryNaviClone.appendTo( '.header-main' ).removeClass( 'mobile-navigation' ).removeAttr( 'id' ).addClass( 'primary-navigation' );
// Append the secondary navigation clone to #mobile-navigations and remove the class and add an id
$secondaryNaviClone.appendTo( $secondaryTop ).removeClass( 'mobile-navigation' ).removeAttr( 'id' ).addClass( 'secondary-navigation' );
};
// Check viewport width when user resizes the browser window.
$( window ).resize( function() {
if ( false !== timeout )
clearTimeout( timeout );
timeout = setTimeout( function() {
if ( $( window ).width() < 770 ) {
mobileHeader();
} else {
normalHeader();
}
}, 100 );
} ).resize();
// Sticky header.
var $mastheadOffset = -1,
$toolbarOffset = $( 'body' ).is( '.admin-bar' ) ? 32 : 0,
$maindiv = $( '#main' );
$( window ).on( 'scroll', false, function() {
if ( $mastheadOffset < 0 )
$mastheadOffset = $masthead.offset().top - $toolbarOffset;
if ( ( window.scrollY > $mastheadOffset ) && ( $( window ).width() > 769 ) ) {
$masthead.addClass( 'masthead-fixed' );
$maindiv.css( {
marginTop: $masthead.height()
} );
} else {
$masthead.removeClass( 'masthead-fixed' );
$maindiv.css( {
marginTop: 0
} );
}
} );
// Arranges footer widgets vertically.
if ( $.isFunction( $.fn.masonry ) ) {
$( '#footer-sidebar' ).masonry( {
itemSelector: '.widget',
columnWidth: 315,
gutterWidth: 0,
isRTL: $( 'body' ).is( '.rtl' )
} );
}
} );
/* Focus styles for primary menu. */
$( '.primary-navigation' ).find( 'a' ).on( 'focus.twentyfourteen blur.twentyfourteen', function() {
$( this ).parents().toggleClass( 'focus' );
});
} )( jQuery );

View File

@ -59,17 +59,22 @@ li > ol {
/* =Header
----------------------------------------------- */
.search-toggle {
float: left;
margin-left: 38px;
.header-main {
margin-left: 48px;
padding-right: 10px;
padding-left: 0;
margin-right: auto;
}
.header-extra {
float: left;
}
.site-title {
float: right;
}
.menu-toggle {
#nav-toggle {
left: 0;
right: auto;
}
@ -88,17 +93,18 @@ li > ol {
----------------------------------------------- */
/* Primary Navigation */
.primary-navigation {
float: left;
margin: 0 -10px 0 10px;
}
.primary-navigation ul {
padding-right: 0;
padding-left: 0;
}
.primary-navigation ul ul li {
margin-left: auto;
margin-right: 15px;
}
.primary-navigation ul ul {
float: right;
right: -999em;
left: auto;
}
@ -487,13 +493,10 @@ blockquote.alignleft {
}
}
@media screen and (min-width: 782px) {
@media screen and (min-width: 770px) {
.header-main {
padding: 0 27px 0 0;
}
.search-toggle {
margin-left: 0;
margin-right: auto;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Twenty Ten 1.6\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyten\n"
"POT-Creation-Date: 2013-10-24 19:42:39+00:00\n"
"POT-Creation-Date: 2013-08-01 18:14:06+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -22,37 +22,37 @@ msgid ""
"will help."
msgstr ""
#: archive.php:34
#: archive.php:33
msgid "Daily Archives: <span>%s</span>"
msgstr ""
#: archive.php:36
#: archive.php:35
msgid "Monthly Archives: <span>%s</span>"
msgstr ""
#: archive.php:36
#: archive.php:35
msgctxt "monthly archives date format"
msgid "F Y"
msgstr ""
#: archive.php:38
#: archive.php:37
msgid "Yearly Archives: <span>%s</span>"
msgstr ""
#: archive.php:38
#: archive.php:37
msgctxt "yearly archives date format"
msgid "Y"
msgstr ""
#: archive.php:40
#: archive.php:39
msgid "Blog Archives"
msgstr ""
#: author.php:28
#: author.php:27
msgid "Author Archives: %s"
msgstr ""
#: author.php:47 loop-single.php:46
#: author.php:37 loop-single.php:43
msgid "About %s"
msgstr ""
@ -65,168 +65,168 @@ msgid ""
"This post is password protected. Enter the password to view any comments."
msgstr ""
#: comments.php:36
#: comments.php:35
msgid "One Response to %2$s"
msgid_plural "%1$s Responses to %2$s"
msgstr[0] ""
msgstr[1] ""
#: comments.php:42 comments.php:62
#: comments.php:41 comments.php:60
msgid "<span class=\"meta-nav\">&larr;</span> Older Comments"
msgstr ""
#: comments.php:43 comments.php:63
#: comments.php:42 comments.php:61
msgid "Newer Comments <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: comments.php:73
#: comments.php:70
msgid "Comments are closed."
msgstr ""
#. #-#-#-#-# twentyten.pot (Twenty Ten 1.6) #-#-#-#-#
#. Author URI of the plugin/theme
#: footer.php:40
#: footer.php:33
msgid "http://wordpress.org/"
msgstr ""
#: footer.php:40
#: footer.php:33
msgid "Semantic Personal Publishing Platform"
msgstr ""
#: footer.php:40
#: footer.php:33
msgid "Proudly powered by %s."
msgstr ""
#: functions.php:95
#: functions.php:93
msgid "Primary Navigation"
msgstr ""
#. translators: header image description
#: functions.php:165
#: functions.php:145
msgid "Berries"
msgstr ""
#. translators: header image description
#: functions.php:171
#: functions.php:151
msgid "Cherry Blossoms"
msgstr ""
#. translators: header image description
#: functions.php:177
#: functions.php:157
msgid "Concave"
msgstr ""
#. translators: header image description
#: functions.php:183
#: functions.php:163
msgid "Fern"
msgstr ""
#. translators: header image description
#: functions.php:189
#: functions.php:169
msgid "Forest Floor"
msgstr ""
#. translators: header image description
#: functions.php:195
#: functions.php:175
msgid "Inkwell"
msgstr ""
#. translators: header image description
#: functions.php:201
#: functions.php:181
msgid "Path"
msgstr ""
#. translators: header image description
#: functions.php:207
#: functions.php:187
msgid "Sunset"
msgstr ""
#: functions.php:280 loop-attachment.php:118 loop.php:116 loop.php:144
#: functions.php:255 loop-attachment.php:104 loop.php:114 loop.php:142
msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: functions.php:373
#: functions.php:338
msgid "%s <span class=\"says\">says:</span>"
msgstr ""
#: functions.php:376
#: functions.php:341
msgid "Your comment is awaiting moderation."
msgstr ""
#. translators: 1: date, 2: time
#: functions.php:383
#: functions.php:348
msgid "%1$s at %2$s"
msgstr ""
#: functions.php:383 functions.php:400
#: functions.php:348 functions.php:365
msgid "(Edit)"
msgstr ""
#: functions.php:400
#: functions.php:365
msgid "Pingback:"
msgstr ""
#: functions.php:420
#: functions.php:384
msgid "Primary Widget Area"
msgstr ""
#: functions.php:422
#: functions.php:386
msgid "Add widgets here to appear in your sidebar."
msgstr ""
#: functions.php:431
#: functions.php:395
msgid "Secondary Widget Area"
msgstr ""
#: functions.php:433
#: functions.php:397
msgid ""
"An optional secondary widget area, displays below the primary widget area in "
"your sidebar."
msgstr ""
#: functions.php:442
#: functions.php:406
msgid "First Footer Widget Area"
msgstr ""
#: functions.php:444 functions.php:455 functions.php:466 functions.php:477
#: functions.php:408 functions.php:419 functions.php:430 functions.php:441
msgid "An optional widget area for your site footer."
msgstr ""
#: functions.php:453
#: functions.php:417
msgid "Second Footer Widget Area"
msgstr ""
#: functions.php:464
#: functions.php:428
msgid "Third Footer Widget Area"
msgstr ""
#: functions.php:475
#: functions.php:439
msgid "Fourth Footer Widget Area"
msgstr ""
#: functions.php:511
#: functions.php:475
msgid ""
"<span class=\"%1$s\">Posted on</span> %2$s <span class=\"meta-sep\">by</"
"span> %3$s"
msgstr ""
#: functions.php:520 loop-attachment.php:36
#: functions.php:484 loop-attachment.php:36
msgid "View all posts by %s"
msgstr ""
#: functions.php:537
#: functions.php:501
msgid ""
"This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" "
"title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
msgstr ""
#: functions.php:539
#: functions.php:503
msgid ""
"This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title="
"\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
msgstr ""
#: functions.php:541
#: functions.php:505
msgid ""
"Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark"
"\">permalink</a>."
@ -236,7 +236,7 @@ msgstr ""
msgid "Page %s"
msgstr ""
#: header.php:105
#: header.php:101
msgid "Skip to content"
msgstr ""
@ -265,34 +265,34 @@ msgstr ""
msgid "Link to full-size image"
msgstr ""
#: loop-attachment.php:63 loop-attachment.php:125 loop-page.php:30
#: loop-single.php:59 loop.php:101 loop.php:124 loop.php:166
#: loop-attachment.php:63 loop-attachment.php:111 loop-page.php:30
#: loop-single.php:56 loop.php:99 loop.php:122 loop.php:164
msgid "Edit"
msgstr ""
#: loop-attachment.php:119 loop-page.php:29 loop-single.php:34 loop.php:145
#: loop-attachment.php:105 loop-page.php:29 loop-single.php:34 loop.php:143
msgid "Pages:"
msgstr ""
#: loop-single.php:21 loop-single.php:64
#: loop-single.php:21 loop-single.php:61
msgctxt "Previous post link"
msgid "&larr;"
msgstr ""
#: loop-single.php:22 loop-single.php:65
#: loop-single.php:22 loop-single.php:62
msgctxt "Next post link"
msgid "&rarr;"
msgstr ""
#: loop-single.php:50
#: loop-single.php:47
msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: loop.php:25 loop.php:179
#: loop.php:25 loop.php:177
msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
msgstr ""
#: loop.php:26 loop.php:180
#: loop.php:26 loop.php:178
msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
@ -302,55 +302,55 @@ msgid ""
"searching will help find a related post."
msgstr ""
#: loop.php:62 loop.php:96
#: loop.php:60 loop.php:94
msgctxt "gallery category slug"
msgid "gallery"
msgstr ""
#: loop.php:83
#: loop.php:81
msgid "This gallery contains <a %1$s>%2$s photo</a>."
msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
msgstr[0] ""
msgstr[1] ""
#: loop.php:84
#: loop.php:82
msgid "Permalink to %s"
msgstr ""
#: loop.php:94
#: loop.php:92
msgid "View Galleries"
msgstr ""
#: loop.php:94 loop.php:97
#: loop.php:92 loop.php:95
msgid "More Galleries"
msgstr ""
#: loop.php:97
#: loop.php:95
msgid "View posts in the Gallery category"
msgstr ""
#: loop.php:100 loop.php:123 loop.php:165
#: loop.php:98 loop.php:121 loop.php:163
msgid "Leave a comment"
msgstr ""
#: loop.php:100 loop.php:123 loop.php:165
#: loop.php:98 loop.php:121 loop.php:163
msgid "1 Comment"
msgstr ""
#: loop.php:100 loop.php:123 loop.php:165
#: loop.php:98 loop.php:121 loop.php:163
msgid "% Comments"
msgstr ""
#: loop.php:107
#: loop.php:105
msgctxt "asides category slug"
msgid "asides"
msgstr ""
#: loop.php:152
#: loop.php:150
msgid "<span class=\"%1$s\">Posted in</span> %2$s"
msgstr ""
#: loop.php:161
#: loop.php:159
msgid "<span class=\"%1$s\">Tagged</span> %2$s"
msgstr ""
@ -358,21 +358,21 @@ msgstr ""
msgid "Search Results for: %s"
msgstr ""
#: search.php:27
#: search.php:26
msgid "Nothing Found"
msgstr ""
#: search.php:29
#: search.php:28
msgid ""
"Sorry, but nothing matched your search criteria. Please try again with some "
"different keywords."
msgstr ""
#: sidebar.php:28
#: sidebar.php:27
msgid "Archives"
msgstr ""
#: sidebar.php:35
#: sidebar.php:34
msgid "Meta"
msgstr ""

View File

@ -38,7 +38,7 @@
<div id="entry-author-info">
<div id="author-avatar">
<?php
/** This filter is documented in author.php */
//duplicate_hook
echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentyten_author_bio_avatar_size', 60 ) );
?>
</div><!-- #author-avatar -->

View File

@ -13,7 +13,7 @@ get_header(); ?>
<div id="content" class="site-content" role="main">
<header class="page-header">
<h1 class="page-title"><?php _e( 'Not found', 'twentythirteen' ); ?></h1>
<h1 class="page-title"><?php _e( 'Not Found', 'twentythirteen' ); ?></h1>
</header>
<div class="page-wrapper">

View File

@ -121,13 +121,15 @@ add_action( 'after_setup_theme', 'twentythirteen_setup' );
function twentythirteen_fonts_url() {
$fonts_url = '';
/* Translators: If there are characters in your language that are not
/*
* Translators: If there are characters in your language that are not
* supported by Source Sans Pro, translate this to 'off'. Do not translate
* into your own language.
*/
$source_sans_pro = _x( 'on', 'Source Sans Pro font: on or off', 'twentythirteen' );
/* Translators: If there are characters in your language that are not
/*
* Translators: If there are characters in your language that are not
* supported by Bitter, translate this to 'off'. Do not translate into your
* own language.
*/

View File

@ -2,9 +2,9 @@
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Twenty Thirteen 1.1\n"
"Project-Id-Version: Twenty Thirteen 1.0\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentythirteen\n"
"POT-Creation-Date: 2013-10-24 20:32:06+00:00\n"
"POT-Creation-Date: 2013-08-01 18:14:17+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -12,8 +12,8 @@ msgstr ""
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: 404.php:16
msgid "Not found"
#: 404.php:16 content-none.php:12
msgid "Nothing Found"
msgstr ""
#: 404.php:21
@ -50,15 +50,15 @@ msgstr ""
msgid "Archives"
msgstr ""
#: author-bio.php:26
#: author-bio.php:16
msgid "About %s"
msgstr ""
#: author-bio.php:30
#: author-bio.php:20
msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: author.php:31
#: author.php:30
msgid "All posts by %s"
msgstr ""
@ -91,43 +91,39 @@ msgstr ""
#: content-aside.php:13 content-audio.php:24 content-gallery.php:24
#: content-image.php:23 content-link.php:24 content-quote.php:13
#: content-status.php:13 content-video.php:23 content.php:41
#: content-status.php:13 content-video.php:23 content.php:39
msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: content-aside.php:14 content-audio.php:25 content-chat.php:24
#: content-gallery.php:25 content-image.php:24 content-link.php:25
#: content-quote.php:14 content-status.php:14 content-video.php:24
#: content.php:42 image.php:70 page.php:35
#: content.php:40 image.php:70 page.php:35
msgid "Pages:"
msgstr ""
#: content-aside.php:20 content-aside.php:28 content-audio.php:31
#: content-chat.php:29 content-gallery.php:39 content-image.php:35
#: content-link.php:19 content-quote.php:25 content-status.php:19
#: content-video.php:35 content.php:31 image.php:44 page.php:39
#: content-video.php:35 content.php:29 image.php:44 page.php:39
msgid "Edit"
msgstr ""
#: content-gallery.php:36 content-image.php:32 content-quote.php:22
#: content-video.php:32 content.php:49
#: content-video.php:32 content.php:47
msgid "Leave a comment"
msgstr ""
#: content-gallery.php:36 content-image.php:32 content-quote.php:22
#: content-video.php:32 content.php:49
#: content-video.php:32 content.php:47
msgid "One comment so far"
msgstr ""
#: content-gallery.php:36 content-image.php:32 content-quote.php:22
#: content-video.php:32 content.php:49
#: content-video.php:32 content.php:47
msgid "View all % comments"
msgstr ""
#: content-none.php:12
msgid "Nothing Found"
msgstr ""
#: content-none.php:18
msgid ""
"Ready to publish your first post? <a href=\"%1$s\">Get started here</a>."
@ -145,28 +141,28 @@ msgid ""
"searching can help."
msgstr ""
#. #-#-#-#-# twentythirteen.pot (Twenty Thirteen 1.1) #-#-#-#-#
#. #-#-#-#-# twentythirteen.pot (Twenty Thirteen 1.0) #-#-#-#-#
#. Author URI of the plugin/theme
#: footer.php:19
#: footer.php:20
msgid "http://wordpress.org/"
msgstr ""
#: footer.php:19
#: footer.php:20
msgid "Semantic Personal Publishing Platform"
msgstr ""
#: footer.php:19
#: footer.php:20
msgid "Proudly powered by %s"
msgstr ""
#: functions.php:97
#: functions.php:93
msgid "Navigation Menu"
msgstr ""
#. Translators: If there are characters in your language that are not
#. * supported by Source Sans Pro, translate this to 'off'. Do not translate
#. * into your own language.
#: functions.php:128
#: functions.php:124
msgctxt "Source Sans Pro font: on or off"
msgid "on"
msgstr ""
@ -174,76 +170,76 @@ msgstr ""
#. Translators: If there are characters in your language that are not
#. * supported by Bitter, translate this to 'off'. Do not translate into your
#. * own language.
#: functions.php:134
#: functions.php:130
msgctxt "Bitter font: on or off"
msgid "on"
msgstr ""
#: functions.php:220
#: functions.php:212
msgid "Page %s"
msgstr ""
#: functions.php:235
#: functions.php:227
msgid "Main Widget Area"
msgstr ""
#: functions.php:237
#: functions.php:229
msgid "Appears in the footer section of the site."
msgstr ""
#: functions.php:245
#: functions.php:237
msgid "Secondary Widget Area"
msgstr ""
#: functions.php:247
#: functions.php:239
msgid "Appears on posts and pages in the sidebar."
msgstr ""
#: functions.php:272
#: functions.php:264
msgid "Posts navigation"
msgstr ""
#: functions.php:276
#: functions.php:268
msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
msgstr ""
#: functions.php:280
#: functions.php:272
msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: functions.php:308
#: functions.php:300
msgid "Post navigation"
msgstr ""
#: functions.php:311
#: functions.php:303
msgctxt "Previous post link"
msgid "<span class=\"meta-nav\">&larr;</span> %title"
msgstr ""
#: functions.php:312
#: functions.php:304
msgctxt "Next post link"
msgid "%title <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: functions.php:332
#: functions.php:324
msgid "Sticky"
msgstr ""
#. Translators: used between list items, there is a space after the comma.
#: functions.php:338 functions.php:344
#: functions.php:330 functions.php:336
msgid ", "
msgstr ""
#: functions.php:353
#: functions.php:345
msgid "View all posts by %s"
msgstr ""
#: functions.php:373
#: functions.php:365
msgctxt "1: post format name. 2: date"
msgid "%1$s on %2$s"
msgstr ""
#: functions.php:379
#: functions.php:371
msgid "Permalink to %s"
msgstr ""
@ -278,23 +274,23 @@ msgstr ""
msgid "Next <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: inc/back-compat.php:41 inc/back-compat.php:53 inc/back-compat.php:68
#: inc/back-compat.php:38 inc/back-compat.php:50 inc/back-compat.php:65
msgid ""
"Twenty Thirteen requires at least WordPress version 3.6. You are running "
"version %s. Please upgrade and try again."
msgstr ""
#: inc/custom-header.php:51
#: inc/custom-header.php:48
msgctxt "header image description"
msgid "Circle"
msgstr ""
#: inc/custom-header.php:56
#: inc/custom-header.php:53
msgctxt "header image description"
msgid "Diamond"
msgstr ""
#: inc/custom-header.php:61
#: inc/custom-header.php:58
msgctxt "header image description"
msgid "Star"
msgstr ""

View File

@ -4,7 +4,7 @@ Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.1
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready

View File

@ -48,13 +48,7 @@ get_header(); ?>
<div class="author-info">
<div class="author-avatar">
<?php
/**
* Filter the author bio avatar size.
*
* @since Twenty Twelve 1.0
*
* @param int $size The height and width of the avatar in pixels.
*/
//duplicate_hook
$author_bio_avatar_size = apply_filters( 'twentytwelve_author_bio_avatar_size', 68 );
echo get_avatar( get_the_author_meta( 'user_email' ), $author_bio_avatar_size );
?>

View File

@ -50,7 +50,13 @@
<div class="author-info">
<div class="author-avatar">
<?php
/** This filter is documented in author.php */
/**
* Filter the author bio avatar size.
*
* @since Twenty Twelve 1.0
*
* @param int $size The height and width of the avatar in pixels.
*/
$author_bio_avatar_size = apply_filters( 'twentytwelve_author_bio_avatar_size', 68 );
echo get_avatar( get_the_author_meta( 'user_email' ), $author_bio_avatar_size );
?>

View File

@ -95,13 +95,15 @@ require( get_template_directory() . '/inc/custom-header.php' );
function twentytwelve_get_font_url() {
$font_url = '';
/* translators: If there are characters in your language that are not supported
/*
* translators: If there are characters in your language that are not supported
* by Open Sans, translate this to 'off'. Do not translate into your own language.
*/
if ( 'off' !== _x( 'on', 'Open Sans font: on or off', 'twentytwelve' ) ) {
$subsets = 'latin,latin-ext';
/* translators: To add an additional Open Sans character subset specific to your language,
/*
* translators: To add an additional Open Sans character subset specific to your language,
* translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language.
*/
$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve' );

View File

@ -2,9 +2,9 @@
# This file is distributed under the GNU General Public License v2 or later.
msgid ""
msgstr ""
"Project-Id-Version: Twenty Twelve 1.3\n"
"Project-Id-Version: Twenty Twelve 1.2\n"
"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
"POT-Creation-Date: 2013-10-24 20:32:05+00:00\n"
"POT-Creation-Date: 2013-08-01 18:14:14+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -52,7 +52,7 @@ msgstr ""
msgid "Author Archives: %s"
msgstr ""
#: author.php:63 content.php:59
#: author.php:53 content.php:53
msgid "About %s"
msgstr ""
@ -83,7 +83,7 @@ msgid "Comments are closed."
msgstr ""
#: content-aside.php:15 content-image.php:13 content-link.php:14
#: content-quote.php:13 content-status.php:31 content.php:41
#: content-quote.php:13 content-status.php:21 content.php:39
msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
@ -93,23 +93,23 @@ msgid "Permalink to %s"
msgstr ""
#: content-aside.php:23 content-image.php:23 content-link.php:21
#: content-quote.php:20 content-status.php:37 content.php:30
#: content-quote.php:20 content-status.php:27 content.php:28
msgid "Leave a reply"
msgstr ""
#: content-aside.php:23 content-image.php:23 content-link.php:21
#: content-quote.php:20 content-status.php:37 content.php:30
#: content-quote.php:20 content-status.php:27 content.php:28
msgid "1 Reply"
msgstr ""
#: content-aside.php:23 content-image.php:23 content-link.php:21
#: content-quote.php:20 content-status.php:37 content.php:30
#: content-quote.php:20 content-status.php:27 content.php:28
msgid "% Replies"
msgstr ""
#: content-aside.php:26 content-image.php:26 content-link.php:24
#: content-page.php:24 content-quote.php:23 content-status.php:40
#: content.php:48 functions.php:349 image.php:37
#: content-page.php:24 content-quote.php:23 content-status.php:30
#: content.php:46 functions.php:341 image.php:37
msgid "Edit"
msgstr ""
@ -127,29 +127,29 @@ msgid ""
"related post."
msgstr ""
#: content-page.php:21 content.php:42 image.php:102
#: content-page.php:21 content.php:40 image.php:92
msgid "Pages:"
msgstr ""
#: content.php:16
#: content.php:14
msgid "Featured post"
msgstr ""
#: content.php:63
#: content.php:57
msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#. #-#-#-#-# twentytwelve.pot (Twenty Twelve 1.3) #-#-#-#-#
#. #-#-#-#-# twentytwelve.pot (Twenty Twelve 1.2) #-#-#-#-#
#. Author URI of the plugin/theme
#: footer.php:16
#: footer.php:17
msgid "http://wordpress.org/"
msgstr ""
#: footer.php:16
#: footer.php:17
msgid "Semantic Personal Publishing Platform"
msgstr ""
#: footer.php:16
#: footer.php:17
msgid "Proudly powered by %s"
msgstr ""
@ -158,111 +158,111 @@ msgid "Primary Menu"
msgstr ""
#. translators: If there are characters in your language that are not supported
#. * by Open Sans, translate this to 'off'. Do not translate into your own
#. by Open Sans, translate this to 'off'. Do not translate into your own
#. language.
#: functions.php:101
#: functions.php:100
msgctxt "Open Sans font: on or off"
msgid "on"
msgstr ""
#. translators: To add an additional Open Sans character subset specific to
#. your language,
#. * translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate
#. into your own language.
#: functions.php:107
#. your language, translate
#. this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your
#. own language.
#: functions.php:105
msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)"
msgid "no-subset"
msgstr ""
#: functions.php:215
#: functions.php:213
msgid "Page %s"
msgstr ""
#: functions.php:244
#: functions.php:238
msgid "Main Sidebar"
msgstr ""
#: functions.php:246
#: functions.php:240
msgid ""
"Appears on posts and pages except the optional Front Page template, which "
"has its own widgets"
msgstr ""
#: functions.php:254
#: functions.php:248
msgid "First Front Page Widget Area"
msgstr ""
#: functions.php:256 functions.php:266
#: functions.php:250 functions.php:260
msgid ""
"Appears when using the optional Front Page template with a page set as "
"Static Front Page"
msgstr ""
#: functions.php:264
#: functions.php:258
msgid "Second Front Page Widget Area"
msgstr ""
#: functions.php:288 single.php:20
#: functions.php:282 single.php:20
msgid "Post navigation"
msgstr ""
#: functions.php:289
#: functions.php:283
msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
msgstr ""
#: functions.php:290
#: functions.php:284
msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
msgstr ""
#: functions.php:317
#: functions.php:309
msgid "Pingback:"
msgstr ""
#: functions.php:317
#: functions.php:309
msgid "(Edit)"
msgstr ""
#: functions.php:332
#: functions.php:324
msgid "Post author"
msgstr ""
#. translators: 1: date, 2: time
#: functions.php:338
#: functions.php:330
msgid "%1$s at %2$s"
msgstr ""
#: functions.php:344
#: functions.php:336
msgid "Your comment is awaiting moderation."
msgstr ""
#: functions.php:353
#: functions.php:345
msgid "Reply"
msgstr ""
#. Translators: used between list items, there is a space after the comma.
#: functions.php:376 functions.php:379
#: functions.php:364 functions.php:367
msgid ", "
msgstr ""
#: functions.php:390
#: functions.php:378
msgid "View all posts by %s"
msgstr ""
#. Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's
#. name.
#: functions.php:396
#: functions.php:384
msgid ""
"This entry was posted in %1$s and tagged %2$s on %3$s<span class=\"by-author"
"\"> by %4$s</span>."
msgstr ""
#: functions.php:398
#: functions.php:386
msgid ""
"This entry was posted in %1$s on %3$s<span class=\"by-author\"> by %4$s</"
"span>."
msgstr ""
#: functions.php:400
#: functions.php:388
msgid "This entry was posted on %3$s<span class=\"by-author\"> by %4$s</span>."
msgstr ""

View File

@ -4,7 +4,7 @@ Theme URI: http://wordpress.org/themes/twentytwelve
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background.
Version: 1.3
Version: 1.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: light, gray, white, one-column, two-columns, right-sidebar, flexible-width, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready

View File

@ -296,7 +296,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
if ( 'wp-register.php' == basename( $redirect['path'] ) ) {
if ( is_multisite() )
/** This filter is documented in wp-login.php */
//duplicate_hook
$redirect_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
else
$redirect_url = site_url( 'wp-login.php?action=register' );

View File

@ -271,7 +271,7 @@ function get_tags( $args = '' ) {
$return = array();
return $return;
}
/**
* Filter the array of term objects returned for the 'post_tag' taxonomy.
*

View File

@ -636,7 +636,7 @@ class WP_Http {
}
}
return wp_remote_request( $redirect_location, $args );
return wp_remote_request( $redirect_location, $args );
}
/**
@ -944,7 +944,7 @@ class WP_Http_Streams {
/**
* Verifies the received SSL certificate against it's Common Names and subjectAltName fields
*
*
* PHP's SSL verifications only verify that it's a valid Certificate, it doesn't verify if
* the certificate is valid for the hostname which was requested.
* This function verifies the requested hostname against certificate's subjectAltName field,

View File

@ -50,7 +50,7 @@ class WP_Admin_Bar {
* To remove the default padding styles from WordPress for the Toolbar, use the following code:
* add_theme_support( 'admin-bar', array( 'callback' => '__return_false' ) );
*/
$admin_bar_args = get_theme_support( 'admin-bar' );
$admin_bar_args = get_theme_support( 'admin-bar' );
$header_callback = $admin_bar_args[0]['callback'];
}

View File

@ -215,7 +215,7 @@ class WP_Embed {
// If there was a result, return it
if ( $html ) {
/** This filter is documented in wp-includes/class-wp-embed.php */
//duplicate_hook
return apply_filters( 'embed_oembed_html', $html, $url, $attr, $post_ID );
}
}

View File

@ -7,7 +7,7 @@
* only needs to implement the methods that are needed.
*
* @since 2.1.0
*
*
* @package WordPress
* @abstract
*/

View File

@ -1772,7 +1772,6 @@ function do_trackbacks($post_id) {
$excerpt = str_replace(']]>', ']]&gt;', $excerpt);
$excerpt = wp_html_excerpt($excerpt, 252, '&#8230;');
/** This filter is documented in wp-includes/post-template.php */
$post_title = apply_filters('the_title', $post->post_title, $post->ID);
$post_title = strip_tags($post_title);

View File

@ -2,7 +2,35 @@
/**
* WP_Date_Query will generate a MySQL WHERE clause for the specified date-based parameters.
*
* Initialize the class by passing an array of arrays of parameters.
* Initialize the class by passing an array of arrays of parameters. Example:
*
* $date_query = new WP_Date_Query( array(
* 'column' => 'optional, column to query against, default is post_date',
* 'compare' => 'optional, see WP_Date_Query::get_compare()',
* 'relation' => 'optional, OR or AND, how the sub-arrays should be compared, default is AND',
* array(
* 'column' => 'see above',
* 'compare' => 'see above',
* 'after' => 'string or array, see WP_Date_Query::build_mysql_datetime()',
* 'before' => 'string or array, see WP_Date_Query::build_mysql_datetime()',
* 'inclusive' => 'boolean, for after/before, whether exact value should be matched or not',
* 'year' => '4 digit int',
* 'month' => 'int, 1-12',
* 'week' => 'int, 0-53',
* 'day' => 'int, 1-31',
* 'hour' => 'int, 0-23',
* 'minute' => 'int, 0-60',
* 'second' => 'int, 0-60',
* ),
* array(
* ...
* ),
* ...
* ) );
*
* Then call the get_sql() method to get the MySQL WHERE string:
*
* $where .= $date_query->get_sql();
*
* @link http://codex.wordpress.org/Function_Reference/WP_Query Codex page.
*
@ -46,62 +74,10 @@ class WP_Date_Query {
public $compare = '=';
/**
* Constructor.
* Constructor
*
* @param array $date_query {
* One or more associative arrays of date query parameters.
*
* @type array {
* @type string $column Optional. The column to query against. If undefined, inherits the value of
* the $default_column parameter. Default 'post_date'. Accepts 'post_date',
* 'post_date_gmt', 'post_modified','post_modified_gmt', 'comment_date',
* 'comment_date_gmt'.
* @type string $compare Optional. The comparison operator.
* Default '='. Accepts '=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN',
* 'BETWEEN', 'NOT BETWEEN'.
* @type string $relation Optional. The boolean relationship between the date queryies.
* Default 'OR'. Accepts 'OR', 'AND'.
* @type array {
* @type string|array $before Optional. Date to retrieve posts before. Accepts strtotime()-compatible
* string, or array of 'year', 'month', 'day' values. {
*
* @type string $year The four-digit year. Default empty. Accepts any four-digit year.
* @type string $month Optional when passing array.The month of the year.
* Default (string:empty)|(array:1). Accepts numbers 1-12.
* @type string $day Optional when passing array.The day of the month.
* Default (string:empty)|(array:1). Accepts numbers 1-31.
* }
* @type string|array $after Optional. Date to retrieve posts before. Accepts strtotime()-compatible
* string, or array of 'year', 'month', 'day' values. {
*
* @type string $year The four-digit year. Default empty. Accepts any four-digit year.
* @type string $month Optional when passing array.The month of the year.
* Default (string:empty)|(array:12). Accepts numbers 1-12.
* @type string $day Optional when passing array.The day of the month.
* Default (string:empty)|(array:last day of month). Accepts numbers 1-31.
* }
* @type string $column Optional. Used to add a clause comparing a column other than the column
* specified in the top-level $column paramater. Default is the value
* of top-level $column. Accepts 'post_date', 'post_date_gmt',
* 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'.
* @type string $compare Optional. The comparison operator. Default '='. Accepts '=', '!=',
* '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'.
* @type bool $inclusive Optional. Include results from dates specified in 'before' or 'after'.
* Default. Accepts.
* @type int $year Optional. The four-digit near number. Default empty. Accepts any
* four-digit year.
* @type int $month Optional. The two-digit month number. Default empty. Accepts numbers 1-12.
* @type int $week Optional. The week number of the year. Default empty. Accepts numbers 0-53.
* @type int $day Optional. The day of the month. Default empty. Accepts numbers 1-31.
* @type int $hour Optional. The hour of the day. Default empty. Accepts numbers 0-23.
* @type int $minute Optional. The minute of the hour. Default empty. Accepts numbers 0-60.
* @type int $second Optional. The second of the minute. Default empty. Accepts numbers 0-60.
* }
* }
* }
* @param array $default_column Optional. Default column to query against. Default 'post_date'.
* Accepts 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt',
* 'comment_date', 'comment_date_gmt'.
* @param array $date_query A date query parameter array, see class descriptor for further details.
* @param array (optional) $default_column What column name to query against. Defaults to "post_date".
*/
function __construct( $date_query, $default_column = 'post_date' ) {
if ( empty( $date_query ) || ! is_array( $date_query ) )
@ -160,19 +136,7 @@ class WP_Date_Query {
* @return string A validated column name value.
*/
public function validate_column( $column ) {
$valid_columns = array(
'post_date', 'post_date_gmt', 'post_modified',
'post_modified_gmt', 'comment_date', 'comment_date_gmt'
);
/**
* Filter the list of valid date query columns.
*
* @since 3.7.0
*
* @param array $valid_columns An array of valid date query columns. Defaults are 'post_date', 'post_date_gmt',
* 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt'
*/
if ( ! in_array( $column, apply_filters( 'date_query_valid_columns', $valid_columns ) ) )
if ( ! in_array( $column, apply_filters( 'date_query_valid_columns', array( 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt' ) ) ) )
$column = 'post_date';
return $column;
@ -204,14 +168,6 @@ class WP_Date_Query {
else
$where = '';
/**
* Filter the date query WHERE clause.
*
* @since 3.7.0
*
* @param string $where WHERE clause of the date query.
* @param WP_Date_Query $this The WP_Date_Query instance.
*/
return apply_filters( 'get_date_sql', $where, $this );
}

View File

@ -48,8 +48,7 @@ if ( have_comments() ) : while ( have_comments() ) : the_comment();
<title><?php
if ( !is_singular() ) {
$title = get_the_title($comment_post->ID);
/** This filter is documented in wp-includes/feed.php */
$title = apply_filters( 'the_title_rss', $title );
$title = apply_filters('the_title_rss', $title);
printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
} else {
printf(ent2ncr(__('By: %s')), get_comment_author_rss());

View File

@ -16,13 +16,13 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
<?php
<?php
/**
* Fires at the end of the feed root to add namespaces.
*
* @since 2.0.0
*/
do_action( 'rdf_ns' );
do_action( 'rdf_ns' );
?>
>
<channel rdf:about="<?php bloginfo_rss("url") ?>">
@ -30,18 +30,17 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
<dc:date><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></dc:date>
<?php /** This filter is documented in wp-includes/feed-rss2.php */ ?>
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
<?php /** This filter is documented in wp-includes/feed-rss2.php */ ?>
<?php //duplicate_hook ?>
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<?php
<?php
/**
* Fires at the end of the RDF feed header.
*
* @since 2.0.0
*/
do_action( 'rdf_header' );
do_action( 'rdf_header' );
?>
<items>
<rdf:Seq>
@ -64,13 +63,13 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<content:encoded><![CDATA[<?php the_content_feed('rdf') ?>]]></content:encoded>
<?php endif; ?>
<?php
<?php
/**
* Fires at the end of each RDF feed item.
*
* @since 2.0.0
*/
do_action( 'rdf_item' );
do_action( 'rdf_item' );
?>
</item>
<?php endwhile; ?>

View File

@ -23,7 +23,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
* Fires at the end of the RSS Feed Header.
*
* @since 2.0.0
*/
*/
do_action( 'rss_head' );
?>

View File

@ -14,12 +14,12 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
<?php
/** This action is documented in wp-includes/feed-rss2.php */
<?php
//duplicate_hook
do_action( 'rss2_ns' );
?>
<?php
<?php
/**
* Fires at the end of the RSS root to add namespaces.
*
@ -41,11 +41,11 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
<link><?php (is_single()) ? the_permalink_rss() : bloginfo_rss("url") ?></link>
<description><?php bloginfo_rss("description") ?></description>
<lastBuildDate><?php echo mysql2date('r', get_lastcommentmodified('GMT')); ?></lastBuildDate>
<?php /** This filter is documented in wp-includes/feed-rss2.php */ ?>
<?php //duplicate_hook ?>
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
<?php /** This filter is documented in wp-includes/feed-rss2.php */ ?>
<?php //duplicate_hook ?>
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
<?php
<?php
/**
* Fires at the end of the RSS2 comment feed header.
*
@ -60,8 +60,8 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
<title><?php
if ( !is_singular() ) {
$title = get_the_title($comment_post->ID);
/** This filter is documented in wp-includes/feed.php */
$title = apply_filters( 'the_title_rss', $title );
//duplicate_hook
$title = apply_filters('the_title_rss', $title);
printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
} else {
printf(ent2ncr(__('By: %s')), get_comment_author_rss());

Some files were not shown because too many files have changed in this diff Show More