WordPress.org

Make WordPress Core

Ticket #16379: 16379.revert.patch

File 16379.revert.patch, 28.8 KB (added by SergeyBiryukov, 6 years ago)
  • wp-admin/css/wp-admin-rtl.css

     
    971971        border-bottom-right-radius: 3px;
    972972}
    973973
    974 #front-static-pages .sub-option,
     974#front-page-warning,
     975#front-static-pages ul,
    975976ul.export-filters,
    976977.inline-editor ul.cat-checklist ul,
    977978.categorydiv ul.categorychecklist ul,
  • wp-admin/css/wp-admin.css

     
    30223022        font-size: 11px;
    30233023}
    30243024
    3025 #front-static-pages #edit-slug-box {
    3026         padding: 0;
    3027 }
    3028 
    30293025#editable-post-name-full {
    30303026        display: none;
    30313027}
     
    35123508        margin: 0;
    35133509}
    35143510
    3515 #front-static-pages .sub-option,
     3511#front-page-warning,
     3512#front-static-pages ul,
    35163513ul.export-filters,
    35173514.inline-editor ul.cat-checklist ul,
    35183515.categorydiv ul.categorychecklist ul,
     
    50725069        margin: -3px 3px;
    50735070}
    50745071
    5075 .js.options-reading-php .if-page-on-front,
    5076 .js.options-reading-php .if-page-for-posts,
    5077 .options-reading-php .if-new-front-page {
    5078         display: none;
    5079 }
    5080 .options-reading-php .page-on-front .if-page-on-front,
    5081 .options-reading-php .page-for-posts .if-page-for-posts {
    5082         display: block;
    5083 }
    5084 .options-reading-php .new-front-page .if-new-front-page {
    5085         display: inline;
    5086 }
    5087 
    50885072/*------------------------------------------------------------------------------
    50895073  21.0 - Admin Footer
    50905074------------------------------------------------------------------------------*/
  • wp-admin/includes/ajax-actions.php

     
    12981298        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
    12991299        $title = isset($_POST['new_title'])? $_POST['new_title'] : '';
    13001300        $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : null;
    1301         $screen = isset( $_POST['screen'] ) ? $_POST['screen'] : 'post';
    1302         wp_die( get_sample_permalink_html( $post_id, $title, $slug, $screen ) );
     1301        wp_die( get_sample_permalink_html( $post_id, $title, $slug ) );
    13031302}
    13041303
    13051304function wp_ajax_inline_save() {
  • wp-admin/includes/post.php

     
    10481048}
    10491049
    10501050/**
    1051  * Returns the HTML of the sample permalink slug editor.
     1051 * sample permalink html
    10521052 *
     1053 * intended to be used for the inplace editor of the permalink post slug on in the post (and page?) editor.
     1054 *
    10531055 * @since 2.5.0
    10541056 *
    10551057 * @param int|object $id Post ID or post object.
    1056  * @param string $new_title Optional. New title.
    1057  * @param string $new_slug Optional. New slug.
    1058  * @param string|WP_Screen $screen Optional. Screen where the editor is being shown.
    1059  * @return string The HTML of the sample permalink slug editor.
     1058 * @param string $new_title (optional) New title
     1059 * @param string $new_slug (optional) New slug
     1060 * @return string intended to be used for the inplace editor of the permalink post slug on in the post (and page?) editor.
    10601061 */
    1061 function get_sample_permalink_html( $id, $new_title = null, $new_slug = null, $screen = null ) {
     1062function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
    10621063        global $wpdb;
    10631064        $post = get_post($id);
    10641065
    10651066        list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug);
    10661067
    1067         if ( isset( $screen ) )
    1068                 $screen = convert_to_screen( $screen );
    1069         else
    1070                 $screen = get_current_screen();
    1071 
    10721068        if ( 'publish' == get_post_status( $post ) ) {
    10731069                $ptype = get_post_type_object($post->post_type);
    10741070                $view_post = $ptype->labels->view_item;
     
    10781074        }
    10791075
    10801076        if ( false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%') ) {
    1081                 if ( 'options-reading' == $screen->id )
    1082                         return '';
    10831077                $return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n";
    10841078                if ( '' == get_option( 'permalink_structure' ) && current_user_can( 'manage_options' ) && !( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') ) )
    10851079                        $return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
     
    11081102        $post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
    11091103        $display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink);
    11101104        $view_link = str_replace(array('%pagename%','%postname%'), $post_name, $permalink);
    1111         $return  = ( 'options-reading' == $screen->id ) ? __( 'Located at' ) . "\n" : '<strong>' . __( 'Permalink:' ) . "</strong>\n";
     1105        $return =  '<strong>' . __('Permalink:') . "</strong>\n";
    11121106        $return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n";
    11131107        $return .= '&lrm;'; // Fix bi-directional text display defect in RTL languages.
    11141108        $return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button button-small hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
    11151109        $return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
    1116         if ( isset( $view_post ) && 'options-reading' != $screen->id )
     1110        if ( isset($view_post) )
    11171111                $return .= "<span id='view-post-btn'><a href='$view_link' class='button button-small'>$view_post</a></span>\n";
    11181112
    11191113        $return = apply_filters('get_sample_permalink_html', $return, $id, $new_title, $new_slug);
     
    13291323
    13301324        return $url;
    13311325}
    1332 
    1333 /**
    1334  * Creates new pages to be set as a front page or a page for posts in Reading Settings.
    1335  *
    1336  * @todo Make sure we are doing adequate sanitization on success, and cleanup/reset on failure.
    1337  *
    1338  * @since 3.5.0
    1339  * @access private
    1340  */
    1341 function _show_on_front_reading_settings( $show_on_front_value ) {
    1342         // If we're not saving the Reading Settings screen, don't intercept.
    1343         if ( ! $_POST || ! strpos( wp_get_referer(), 'options-reading.php' ) )
    1344                 return $show_on_front_value;
    1345 
    1346         if ( 'posts' == $show_on_front_value ) {
    1347                 update_option( 'page_on_front', 0 );
    1348                 update_option( 'page_for_posts', 0 );
    1349                 return $show_on_front_value;
    1350         }
    1351 
    1352         // If a new front page was meant to be created, go forth and create it.
    1353         if ( 'new' == $_POST['page_on_front'] ) {
    1354 
    1355                 // If the user can't create pages, revert.
    1356                 if ( ! current_user_can( 'create_posts', 'page' ) ) {
    1357                         // If an existing page is set, keep things as is, rather than reverting to showing posts.
    1358                         if ( get_option( 'page_on_front' ) ) {
    1359                                 $show_on_front_value = 'page';
    1360                         } else {
    1361                                 $show_on_front_value = 'posts';
    1362                                 update_option( 'page_on_front', 0 );
    1363                                 update_option( 'page_for_posts', 0 );
    1364                         }
    1365                         add_settings_error( 'page_on_front', 'create_pages', __( 'You are not allowed to create pages on this site.' ) );
    1366                         return $show_on_front_value;
    1367                 }
    1368 
    1369                 $existing_page = get_page_by_title( stripslashes( $_POST['page_on_front_title'] ) );
    1370 
    1371                 // If page already exists and it's public, there's no need to create a new page.
    1372                 if ( $existing_page && 'publish' == $existing_page->post_status ) {
    1373                         $page_id = $existing_page->ID;
    1374                 } else {
    1375                         $page_id = wp_insert_post( array(
    1376                                 'post_title' => $_POST['page_on_front_title'],
    1377                                 'post_type' => 'page',
    1378                                 'post_status' => 'publish',
    1379                                 'comment_status' => 'closed',
    1380                                 'ping_status' => 'closed',
    1381                                 // @todo Create some sort of a 'context' in postmeta so we know we created a page through these means.
    1382                                 //       Consider then showing that context in the list table as a good-first-step.
    1383                         ) );
    1384                 }
    1385 
    1386                 if ( $page_id ) {
    1387                         update_option( 'page_on_front', $page_id );
    1388                 // If we can't save it, revert.
    1389                 } elseif ( get_option( 'page_on_front' ) ) {
    1390                         // If an existing page is set, keep things as is, rather than reverting to showing posts.
    1391                         $show_on_front_value = 'page';
    1392                 } else {
    1393                         $show_on_front_value = 'posts';
    1394                         update_option( 'page_on_front', 0 );
    1395                         update_option( 'page_for_posts', 0 );
    1396                         return $show_on_front_value;
    1397                 }
    1398         } elseif ( $_POST['page_on_front'] ) {
    1399                 update_option( 'page_on_front', $_POST['page_on_front'] );
    1400         } else {
    1401                 // They didn't select a page at all. Sad face.
    1402                 $show_on_front_value = 'posts';
    1403                 update_option( 'page_on_front', 0 );
    1404                 update_option( 'page_for_posts', 0 );
    1405                 add_settings_error( 'page_on_front', 'no_page_selected', __( 'You must select a page to set a static front page.' ) );
    1406                 return $show_on_front_value;
    1407         }
    1408 
    1409         // If a page for posts was meant to be specified, update/create it.
    1410         if ( ! isset( $_POST['page_for_posts'] ) ) {
    1411                 update_option( 'page_for_posts', 0 );
    1412                 return $show_on_front_value;
    1413         }
    1414 
    1415         $page_for_posts = (int) $_POST['page_for_posts'];
    1416 
    1417         if ( ! $page_for_posts || ! $page = get_post( $page_for_posts, ARRAY_A ) ) {
    1418                 update_option( 'page_for_posts', 0 );
    1419                 return $show_on_front_value;
    1420         }
    1421 
    1422         if ( 'page' != $page['post_type'] || ! current_user_can( 'edit_post', $page_for_posts ) ) {
    1423                 update_option( 'page_for_posts', 0 );
    1424                 return $show_on_front_value;
    1425         }
    1426 
    1427         if ( 'publish' != $page['post_status'] && ! current_user_can( 'publish_post', $page_for_posts ) ) {
    1428                 update_option( 'page_for_posts', 0 );
    1429                 return $show_on_front_value;
    1430         }
    1431 
    1432         $args = add_magic_quotes( $page );
    1433         $args['post_title']  = $_POST['page_for_posts_title'];
    1434         $args['post_name']   = $_POST['post_name'];
    1435         $args['post_status'] = 'publish';
    1436         if ( 'auto-draft' == $page['post_status'] ) {
    1437                 $args['comment_status'] = 'closed';
    1438                 $args['ping_status'] = 'closed';
    1439         }
    1440 
    1441         $page_id = wp_insert_post( $args );
    1442         update_option( 'page_for_posts', $page_id );
    1443 
    1444         return $show_on_front_value;
    1445 }
    1446 add_filter( 'sanitize_option_show_on_front', '_show_on_front_reading_settings' );
  • wp-admin/js/post.js

     
    572572                });
    573573        } // end submitdiv
    574574
     575        // permalink
     576        if ( $('#edit-slug-box').length ) {
     577                editPermalink = function(post_id) {
     578                        var i, c = 0, e = $('#editable-post-name'), revert_e = e.html(), real_slug = $('#post_name'), revert_slug = real_slug.val(), b = $('#edit-slug-buttons'), revert_b = b.html(), full = $('#editable-post-name-full').html();
     579
     580                        $('#view-post-btn').hide();
     581                        b.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
     582                        b.children('.save').click(function() {
     583                                var new_slug = e.children('input').val();
     584                                if ( new_slug == $('#editable-post-name-full').text() ) {
     585                                        return $('.cancel', '#edit-slug-buttons').click();
     586                                }
     587                                $.post(ajaxurl, {
     588                                        action: 'sample-permalink',
     589                                        post_id: post_id,
     590                                        new_slug: new_slug,
     591                                        new_title: $('#title').val(),
     592                                        samplepermalinknonce: $('#samplepermalinknonce').val()
     593                                }, function(data) {
     594                                        $('#edit-slug-box').html(data);
     595                                        b.html(revert_b);
     596                                        real_slug.val(new_slug);
     597                                        makeSlugeditClickable();
     598                                        $('#view-post-btn').show();
     599                                });
     600                                return false;
     601                        });
     602
     603                        $('.cancel', '#edit-slug-buttons').click(function() {
     604                                $('#view-post-btn').show();
     605                                e.html(revert_e);
     606                                b.html(revert_b);
     607                                real_slug.val(revert_slug);
     608                                return false;
     609                        });
     610
     611                        for ( i = 0; i < full.length; ++i ) {
     612                                if ( '%' == full.charAt(i) )
     613                                        c++;
     614                        }
     615
     616                        slug_value = ( c > full.length / 4 ) ? '' : full;
     617                        e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
     618                                var key = e.keyCode || 0;
     619                                // on enter, just save the new slug, don't save the post
     620                                if ( 13 == key ) {
     621                                        b.children('.save').click();
     622                                        return false;
     623                                }
     624                                if ( 27 == key ) {
     625                                        b.children('.cancel').click();
     626                                        return false;
     627                                }
     628                                real_slug.val(this.value);
     629                        }).focus();
     630                }
     631
     632                makeSlugeditClickable = function() {
     633                        $('#editable-post-name').click(function() {
     634                                $('#edit-slug-buttons').children('.edit-slug').click();
     635                        });
     636                }
     637                makeSlugeditClickable();
     638        }
     639
    575640        // word count
    576641        if ( typeof(wpWordCount) != 'undefined' ) {
    577642                $(document).triggerHandler('wpcountwords', [ co.val() ]);
  • wp-admin/js/sample-permalink.js

     
    1 var editPermalink, makeSlugeditClickable;
    2 
    3 (function($){
    4         if ( ! $('#edit-slug-box').length )
    5                 return;
    6         editPermalink = function(post_id) {
    7                 var i, c = 0,
    8                         e = $('#editable-post-name'),
    9                         revert_e = e.html(),
    10                         real_slug = $('#post_name'),
    11                         revert_slug = real_slug.val(),
    12                         b = $('#edit-slug-buttons'),
    13                         revert_b = b.html(),
    14                         full = $('#editable-post-name-full').html();
    15 
    16                 $('#view-post-btn').hide();
    17                 b.html('<a href="#" class="save button button-small">'+samplePermalinkL10n.ok+'</a> <a class="cancel" href="#">'+samplePermalinkL10n.cancel+'</a>');
    18                 b.children('.save').click(function() {
    19                         var new_slug = e.children('input').val();
    20                         if ( new_slug == $('#editable-post-name-full').text() ) {
    21                                 return $('.cancel', '#edit-slug-buttons').click();
    22                         }
    23                         $.post(ajaxurl, {
    24                                 action: 'sample-permalink',
    25                                 post_id: post_id,
    26                                 new_slug: new_slug,
    27                                 new_title: $('#title').val(),
    28                                 screen: pagenow,
    29                                 samplepermalinknonce: $('#samplepermalinknonce').val()
    30                         }, function(data) {
    31                                 $('#edit-slug-box').html(data);
    32                                 b.html(revert_b);
    33                                 real_slug.val(new_slug);
    34                                 makeSlugeditClickable();
    35                                 $('#view-post-btn').show();
    36                         });
    37                         return false;
    38                 });
    39 
    40                 $('.cancel', '#edit-slug-buttons').click(function() {
    41                         $('#view-post-btn').show();
    42                         e.html(revert_e);
    43                         b.html(revert_b);
    44                         real_slug.val(revert_slug);
    45                         return false;
    46                 });
    47 
    48                 for ( i = 0; i < full.length; ++i ) {
    49                         if ( '%' == full.charAt(i) )
    50                                 c++;
    51                 }
    52 
    53                 slug_value = ( c > full.length / 4 ) ? '' : full;
    54                 e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
    55                         var key = e.keyCode || 0;
    56                         // on enter, just save the new slug, don't save the post
    57                         if ( 13 == key ) {
    58                                 b.children('.save').click();
    59                                 return false;
    60                         }
    61                         if ( 27 == key ) {
    62                                 b.children('.cancel').click();
    63                                 return false;
    64                         }
    65                         real_slug.val(this.value);
    66                 }).focus();
    67         }
    68 
    69         makeSlugeditClickable = function() {
    70                 $('#editable-post-name').click(function() {
    71                         $('#edit-slug-buttons').children('.edit-slug').click();
    72                 });
    73         }
    74         makeSlugeditClickable();
    75 })(jQuery);
    76  No newline at end of file
  • wp-admin/js/sample-permalink.min.js

     
    1 var editPermalink,makeSlugeditClickable;(function(a){if(!a("#edit-slug-box").length){return}editPermalink=function(d){var f,j=0,h=a("#editable-post-name"),k=h.html(),n=a("#post_name"),o=n.val(),l=a("#edit-slug-buttons"),m=l.html(),g=a("#editable-post-name-full").html();a("#view-post-btn").hide();l.html('<a href="#" class="save button button-small">'+samplePermalinkL10n.ok+'</a> <a class="cancel" href="#">'+samplePermalinkL10n.cancel+"</a>");l.children(".save").click(function(){var b=h.children("input").val();if(b==a("#editable-post-name-full").text()){return a(".cancel","#edit-slug-buttons").click()}a.post(ajaxurl,{action:"sample-permalink",post_id:d,new_slug:b,new_title:a("#title").val(),screen:pagenow,samplepermalinknonce:a("#samplepermalinknonce").val()},function(c){a("#edit-slug-box").html(c);l.html(m);n.val(b);makeSlugeditClickable();a("#view-post-btn").show()});return false});a(".cancel","#edit-slug-buttons").click(function(){a("#view-post-btn").show();h.html(k);l.html(m);n.val(o);return false});for(f=0;f<g.length;++f){if("%"==g.charAt(f)){j++}}slug_value=(j>g.length/4)?"":g;h.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children("input").keypress(function(c){var b=c.keyCode||0;if(13==b){l.children(".save").click();return false}if(27==b){l.children(".cancel").click();return false}n.val(this.value)}).focus()};makeSlugeditClickable=function(){a("#editable-post-name").click(function(){a("#edit-slug-buttons").children(".edit-slug").click()})};makeSlugeditClickable()})(jQuery);
    2  No newline at end of file
  • wp-admin/options-reading.php

     
    1515$title = __( 'Reading Settings' );
    1616$parent_file = 'options-general.php';
    1717
    18 wp_enqueue_script( 'sample-permalink' );
    19 
    2018/**
    2119 * Display JavaScript on the page.
    2220 *
     
    2422 */
    2523function options_reading_add_js() {
    2624?>
    27 <script>
    28 jQuery(document).ready( function($) {
    29         var section = $('#front-static-pages');
    30         $('#show_on_front').change( function() {
    31                 var checked = $(this).prop('checked');
    32                 section.toggleClass('page-on-front', checked);
    33                 if ( checked )
    34                         $('#page_for_posts').prop('checked', true).change();
    35                 else
    36                         section.removeClass('page-for-posts');
     25<script type="text/javascript">
     26//<![CDATA[
     27        jQuery(document).ready(function($){
     28                var section = $('#front-static-pages'),
     29                        staticPage = section.find('input:radio[value="page"]'),
     30                        selects = section.find('select'),
     31                        check_disabled = function(){
     32                                selects.prop( 'disabled', ! staticPage.prop('checked') );
     33                        };
     34                check_disabled();
     35                section.find('input:radio').change(check_disabled);
    3736        });
    38         $('#page_for_posts').change( function() {
    39                 section.toggleClass('page-for-posts', $(this).prop('checked'));
    40         });
    41         $('#page_on_front').change( function() {
    42                 section.toggleClass('new-front-page', 'new' === $(this).val());
    43         });
    44 });
     37//]]>
    4538</script>
    4639<?php
    4740}
    48 add_action( 'admin_head', 'options_reading_add_js' );
     41add_action('admin_head', 'options_reading_add_js');
    4942
    5043/**
    5144 * Render the blog charset setting.
     
    8982<form method="post" action="options.php">
    9083<?php
    9184settings_fields( 'reading' );
    92 wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false );
     85
     86if ( ! in_array( get_option( 'blog_charset' ), array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ) ) )
     87        add_settings_field( 'blog_charset', __( 'Encoding for pages and feeds' ), 'options_reading_blog_charset', 'reading', 'default', array( 'label_for' => 'blog_charset' ) );
    9388?>
     89
     90<?php if ( ! get_pages() ) : ?>
     91<input name="show_on_front" type="hidden" value="posts" />
    9492<table class="form-table">
    9593<?php
    96 if ( ! in_array( get_option( 'blog_charset' ), array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ) ) )
    97         add_settings_field( 'blog_charset', __( 'Encoding for pages and feeds' ), 'options_reading_blog_charset', 'reading', 'default', array( 'label_for' => 'blog_charset' ) );
     94        if ( 'posts' != get_option( 'show_on_front' ) ) :
     95                update_option( 'show_on_front', 'posts' );
     96        endif;
    9897
    99 $classes = '';
    100 if ( 'page' == get_option( 'show_on_front' ) ) {
    101         if ( ! get_pages() || ! get_option( 'page_on_front' ) && ! get_option( 'page_for_posts' ) ) {
     98else :
     99        if ( 'page' == get_option( 'show_on_front' ) && ! get_option( 'page_on_front' ) && ! get_option( 'page_for_posts' ) )
    102100                update_option( 'show_on_front', 'posts' );
    103         } else {
    104                 $classes = 'page-on-front';
    105                 if ( get_option( 'page_for_posts' ) )
    106                         $classes .= ' page-for-posts';
    107         }
    108 }
    109 
    110 $all_pages = get_pages();
    111 $new_front_page_only = ! get_option( 'page_on_front' ) && ( ! $all_pages || ( 1 == count( $all_pages ) && __( 'sample-page' ) == $all_pages[0]->post_name ) );
    112 
    113 if ( current_user_can( 'create_posts', 'page' ) && ! ( get_option( 'page_for_posts' ) && $page_for_posts = get_post( get_option( 'page_for_posts' ) ) ) ) {
    114         $title = _x( 'Blog', 'default page for posts title' );
    115         // @todo What if the found page is post_type = attachment or post_status != publish?
    116         //       We could go ahead and create a new one, but we would not be able to take over
    117         //       the slug from another page. (We could for an attachment.)
    118         //       We must also check that the user can edit this page and publish a page.
    119         //       Otherwise, we must assume they cannot create pages (throughout), and thus
    120         //       should fall back to the dropdown.
    121         $page_for_posts = get_page_by_path( sanitize_title( $title ) );
    122         if ( ! $page_for_posts || $page_for_posts->ID == get_option( 'page_on_front' ) ) {
    123                 $page_for_posts = get_default_post_to_edit( 'page', true );
    124                 $page_for_posts->post_title = $title;
    125                 $page_for_posts->post_name = sanitize_title( $title );
    126         }
    127 }
    128 
    129 if ( ! $new_front_page_only || current_user_can( 'create_posts', 'page' ) ) : ?>
     101?>
     102<table class="form-table">
    130103<tr valign="top">
    131 <th scope="row"><?php _e( 'Enable a static front page' ); ?></th>
    132 <td id="front-static-pages" class="<?php echo $classes; ?>">
    133         <fieldset><legend class="screen-reader-text"><span><?php _e( 'Enable a static front page' ); ?></span></legend>
    134         <p><label for="show_on_front">
    135                 <input id="show_on_front" name="show_on_front" type="checkbox" value="page" <?php checked( 'page', get_option( 'show_on_front' ) ); ?> />
    136                 <?php printf( __( 'Show a <a href="%s">page</a> instead of your latest posts' ), 'edit.php?post_type=page' ); ?>
    137         </label></p>
    138         <p class="if-page-on-front sub-option">
    139         <?php if ( $new_front_page_only ) : // If no pages, or only sample page, only allow a new page to be added ?>
    140                 <label for="page_on_front_title"><?php _e( 'Add new page titled:' ); ?>
    141         <?php else : ?>
    142                 <label for="page_on_front">
    143                         <select name="page_on_front" id="page_on_front">
    144                                 <option value="0"><?php _e( '&mdash; Select &mdash;' ); ?></option>
    145                                 <?php if ( current_user_can( 'create_posts', 'page' ) ) : ?>
    146                                 <option value="new" id="new-page"><?php _e( '&mdash; Add new page &mdash;' ); ?></option>
    147                                 <?php endif; ?>
    148                                 <?php echo walk_page_dropdown_tree( $all_pages, 0, array( 'selected' => get_option( 'page_on_front' ) ) ); ?>
    149                         </select>
    150                 </label>
    151                 <?php if ( current_user_can( 'create_posts', 'page' ) ) : ?>
    152                 <label for="page_on_front_title" class="if-new-front-page"><?php _e( 'titled:' ); ?>
    153                 <?php endif; ?>
    154         <?php endif; ?>
    155         <?php if ( current_user_can( 'create_posts', 'page' ) ) : ?>
    156                         <input name="page_on_front_title" type="text" id="page_on_front_title" value="<?php echo esc_attr_x( 'Home', 'default page on front title' ); ?>" />
    157                 </label>
    158         <?php endif; ?>
     104<th scope="row"><?php _e( 'Front page displays' ); ?></th>
     105<td id="front-static-pages"><fieldset><legend class="screen-reader-text"><span><?php _e( 'Front page displays' ); ?></span></legend>
     106        <p><label>
     107                <input name="show_on_front" type="radio" value="posts" class="tog" <?php checked( 'posts', get_option( 'show_on_front' ) ); ?> />
     108                <?php _e( 'Your latest posts' ); ?>
     109        </label>
    159110        </p>
    160         <p class="if-page-on-front"><label for="page_for_posts">
    161                 <input id="page_for_posts" name="page_for_posts" type="checkbox" value="<?php echo $page_for_posts->ID; ?>" <?php checked( (bool) get_option( 'page_for_posts' ) ); ?> />
    162                 <?php _e( 'Show latest posts on a separate page' ); ?>
    163         </label></p>
    164         <?php if ( current_user_can( 'create_posts', 'page' ) ) : ?>
    165         <p class="if-page-for-posts sub-option"><label for="page_for_posts_title"><?php _e( 'Page title:' ); ?>
    166                 <input name="page_for_posts_title" type="text" id="page_for_posts_title" value="<?php echo esc_attr( htmlspecialchars( $page_for_posts->post_title ) ); ?>" />
    167         </label></p>
    168         <p class="if-page-for-posts sub-option" id="edit-slug-box">
    169                 <?php echo get_sample_permalink_html( $page_for_posts->ID, $page_for_posts->post_title, $page_for_posts->post_name ); ?>
     111        <p><label>
     112                <input name="show_on_front" type="radio" value="page" class="tog" <?php checked( 'page', get_option( 'show_on_front' ) ); ?> />
     113                <?php printf( __( 'A <a href="%s">static page</a> (select below)' ), 'edit.php?post_type=page' ); ?>
     114        </label>
    170115        </p>
    171         <input name="post_name" type="hidden" id="post_name" value="<?php echo esc_attr( apply_filters( 'editable_slug', $page_for_posts->post_name ) ); ?>" />
    172         <?php if ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) == get_option( 'page_on_front' ) ) : ?>
    173         <div class="error inline"><p><strong><?php _e( 'ERROR:' ); ?></strong> <?php _e( 'These pages should not be the same!' ); ?></p></div>
    174         <?php endif; ?>
    175         </fieldset>
    176         <?php else : // cannot create pages, so fall back to a selector of existing pages ?>
    177         <p class="if-page-for-posts sub-option"><label for="page_for_posts">
    178                 <?php wp_dropdown_pages( array(
    179                         'name' => 'page_for_posts', 'show_option_none' => __( '&mdash; Select &mdash;' ),
    180                         'option_none_value' => '0', 'selected' => get_option( 'page_for_posts' )
    181                 ) ); ?>
    182         <?php endif; // create pages ?>
    183 </td>
     116<ul>
     117        <li><label for="page_on_front"><?php printf( __( 'Front page: %s' ), wp_dropdown_pages( array( 'name' => 'page_on_front', 'echo' => 0, 'show_option_none' => __( '&mdash; Select &mdash;' ), 'option_none_value' => '0', 'selected' => get_option( 'page_on_front' ) ) ) ); ?></label></li>
     118        <li><label for="page_for_posts"><?php printf( __( 'Posts page: %s' ), wp_dropdown_pages( array( 'name' => 'page_for_posts', 'echo' => 0, 'show_option_none' => __( '&mdash; Select &mdash;' ), 'option_none_value' => '0', 'selected' => get_option( 'page_for_posts' ) ) ) ); ?></label></li>
     119</ul>
     120<?php if ( 'page' == get_option( 'show_on_front' ) && get_option( 'page_for_posts' ) == get_option( 'page_on_front' ) ) : ?>
     121<div id="front-page-warning" class="error inline"><p><?php _e( '<strong>Warning:</strong> these pages should not be the same!' ); ?></p></div>
     122<?php endif; ?>
     123</fieldset></td>
    184124</tr>
    185 <?php endif; // if no pages to choose from and can't create pages ?>
    186 
     125<?php endif; ?>
    187126<tr valign="top">
    188127<th scope="row"><label for="posts_per_page"><?php _e( 'Blog pages show at most' ); ?></label></th>
    189128<td>
  • wp-admin/options.php

     
    6262        'general' => array( 'blogname', 'blogdescription', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string' ),
    6363        'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
    6464        'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
    65         'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'blog_public' ),
     65        'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'page_on_front', 'page_for_posts', 'blog_public' ),
    6666        'writing' => array( 'use_smilies', 'default_category', 'default_email_category', 'use_balanceTags', 'default_link_category', 'default_post_format' )
    6767);
    6868$whitelist_options['misc'] = $whitelist_options['options'] = $whitelist_options['privacy'] = array();
  • wp-includes/formatting.php

     
    27862786                        $value = absint( $value );
    27872787                        break;
    27882788
    2789                 case 'show_on_front' :
    2790                         if ( ! $value )
    2791                                 $value = 'posts';
    2792                         break;
    2793 
    27942789                case 'posts_per_page':
    27952790                case 'posts_per_rss':
    27962791                        $value = (int) $value;
  • wp-includes/script-loader.php

     
    357357
    358358                $scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array('jquery-ui-sortable'), false, 1 );
    359359
    360                 $scripts->add( 'sample-permalink', "/wp-admin/js/sample-permalink$suffix.js", array(), false, 1 );
    361                 did_action( 'init' ) && $scripts->localize( 'sample-permalink', 'samplePermalinkL10n', array(
     360                $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'wp-lists', 'postbox'), false, 1 );
     361                did_action( 'init' ) && $scripts->localize( 'post', 'postL10n', array(
    362362                        'ok' => __('OK'),
    363363                        'cancel' => __('Cancel'),
    364                 ) );
    365 
    366                 $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'wp-lists', 'postbox', 'sample-permalink' ), false, 1 );
    367                 did_action( 'init' ) && $scripts->localize( 'post', 'postL10n', array(
    368364                        'publishOn' => __('Publish on:'),
    369365                        'publishOnFuture' =>  __('Schedule for:'),
    370366                        'publishOnPast' => __('Published on:'),