WordPress.org

Make WordPress Core

Ticket #6072: act-right-on-empty-slug.diff

File act-right-on-empty-slug.diff, 3.1 KB (added by nbachiyski, 7 years ago)
  • wp-admin/admin-ajax.php

     
    568568case 'sample-permalink': 
    569569        check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' ); 
    570570        $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0; 
    571         die(get_sample_permalink_html($post_id, $_POST['new_slug'])); 
     571        die(get_sample_permalink_html($post_id, $_POST['new_title'], $_POST['new_slug'])); 
    572572break; 
    573573default : 
    574574        do_action( 'wp_ajax_' . $_POST['action'] ); 
  • wp-admin/includes/post.php

     
    577577        } 
    578578} 
    579579 
    580 function get_sample_permalink($id, $name = null) { 
     580function get_sample_permalink($id, $title, $name = null) { 
    581581        $post = &get_post($id); 
    582582        if (!$post->ID) { 
    583583                return array('', ''); 
     
    585585        $original_status = $post->post_status; 
    586586        $original_date = $post->post_date; 
    587587        $original_name = $post->post_name; 
     588        $original_title = $post->post_title; 
     589 
     590        $post->post_title = $title; 
     591        $post->post_name = sanitize_title($post->post_name? $post->post_name : $post->post_title, $post->ID); 
     592 
    588593        if (in_array($post->post_status, array('draft', 'pending'))) { 
    589594                $post->post_status = 'publish'; 
    590595                $post->post_date = date('Y-m-d H:i:s'); 
    591                 $post->post_name = sanitize_title($post->post_name? $post->post_name : $post->post_title, $post->ID); 
    592596        } 
    593597        if (!is_null($name)) { 
    594                 $post->post_name = sanitize_title($name, $post->ID); 
     598                $post->post_name = sanitize_title($name? $name : $post->post_title, $post->ID); 
    595599        } 
    596600 
    597601        $permalink = get_permalink($post, true); 
     
    610614        $post->post_status = $original_status; 
    611615        $post->post_date = $original_date; 
    612616        $post->post_name = $original_name; 
     617        $post->post_title = $original_title; 
    613618        return $permalink; 
    614619} 
    615620 
    616 function get_sample_permalink_html($id, $new_slug=null) { 
     621function get_sample_permalink_html($id, $new_title=null, $new_slug=null) { 
    617622        $post = &get_post($id); 
    618         list($permalink, $post_name) = get_sample_permalink($post->ID, $new_slug); 
     623        list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug); 
    619624        if (false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%')) { 
    620625                return ''; 
    621626        } 
  • wp-admin/js/slug.js

     
    1010 
    1111        b.html('<a href="" class="save">'+slugL10n.save+'</a> <a class="cancel" href="">'+slugL10n.cancel+'</a>'); 
    1212        b.children('.save').click(function() { 
    13                 var new_slug = e.children('input').attr('value'); 
     13                var new_slug = e.children('input').val(); 
    1414                jQuery.post(slugL10n.requestFile, { 
    1515                        action: 'sample-permalink', 
    1616                        post_id: post_id, 
    1717                        new_slug: new_slug, 
     18                        new_title: jQuery('#title').val(), 
    1819                        samplepermalinknonce: jQuery('#samplepermalinknonce').val()}, function(data) { 
    1920                                jQuery('#edit-slug-box').html(data); 
    2021                                b.html(revert_b);