Changeset 22653 for trunk/wp-admin/includes/post.php
- Timestamp:
- 11/19/2012 01:28:32 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/post.php
r22532 r22653 1056 1056 * @param string $new_title Optional. New title. 1057 1057 * @param string $new_slug Optional. New slug. 1058 * @param string|WP_Screen $screen Optional. Screen where the editor is being shown.1059 1058 * @return string The HTML of the sample permalink slug editor. 1060 1059 */ 1061 function get_sample_permalink_html( $id, $new_title = null, $new_slug = null , $screen = null) {1060 function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) { 1062 1061 global $wpdb; 1063 1062 $post = get_post($id); 1064 1063 1065 1064 list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug); 1066 1067 if ( isset( $screen ) )1068 $screen = convert_to_screen( $screen );1069 else1070 $screen = get_current_screen();1071 1065 1072 1066 if ( 'publish' == get_post_status( $post ) ) { … … 1079 1073 1080 1074 if ( false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%') ) { 1081 if ( 'options-reading' == $screen->id )1082 return '';1083 1075 $return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n"; 1084 1076 if ( '' == get_option( 'permalink_structure' ) && current_user_can( 'manage_options' ) && !( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') ) ) 1085 1077 $return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n"; 1086 if ( isset( $view_post) )1078 if ( isset( $view_post ) ) 1087 1079 $return .= "<span id='view-post-btn'><a href='$permalink' class='button button-small'>$view_post</a></span>\n"; 1088 1080 … … 1109 1101 $display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink); 1110 1102 $view_link = str_replace(array('%pagename%','%postname%'), $post_name, $permalink); 1111 $return = ( 'options-reading' == $screen->id ) ? __( 'Located at' ) . "\n" : '<strong>' . __( 'Permalink:') . "</strong>\n";1103 $return = '<strong>' . __('Permalink:') . "</strong>\n"; 1112 1104 $return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n"; 1113 1105 $return .= '‎'; // Fix bi-directional text display defect in RTL languages. 1114 1106 $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"; 1115 1107 $return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n"; 1116 if ( isset( $view_post ) && 'options-reading' != $screen->id)1108 if ( isset($view_post) ) 1117 1109 $return .= "<span id='view-post-btn'><a href='$view_link' class='button button-small'>$view_post</a></span>\n"; 1118 1110 … … 1330 1322 return $url; 1331 1323 } 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.01339 * @access private1340 */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' );
Note: See TracChangeset
for help on using the changeset viewer.