WordPress.org

Make WordPress Core

Ticket #7897: 7897.diff

File 7897.diff, 10.9 KB (added by nacin, 2 years ago)
  • wp-includes/post.php

     
    29072907        if ( empty($tags) ) 
    29082908                $tags = array(); 
    29092909 
    2910         $tags = is_array($tags) ? $tags : explode( ',', trim($tags, " \n\t\r\0\x0B,") ); 
     2910        if ( ! is_array( $tags ) ) { 
     2911                $comma = _x( ',', 'tag delimiter' ); 
     2912                if ( ',' !== $comma ) 
     2913                        $tags = str_replace( $comma, ',', $tags ); 
     2914                $tags = explode( ',', trim( $tags, " \n\t\r\0\x0B," ) ); 
     2915        } 
    29112916 
    29122917        // Hierarchical taxonomies must always pass IDs rather than names so that children with the same 
    29132918        // names but different parents aren't confused. 
  • wp-includes/script-loader.php

     
    330330                        'publicSticky' => __('Public, Sticky'), 
    331331                        'password' => __('Password Protected'), 
    332332                        'privatelyPublished' => __('Privately Published'), 
    333                         'published' => __('Published') 
     333                        'published' => __('Published'), 
     334                        'comma' => _x( ',', 'tag delimiter' ), 
    334335                ) ); 
    335336 
    336337                $scripts->add( 'link', "/wp-admin/js/link$suffix.js", array('wp-lists', 'postbox'), false, 1 ); 
     
    353354                $scripts->localize( 'inline-edit-post', 'inlineEditL10n', array( 
    354355                        'error' => __('Error while saving the changes.'), 
    355356                        'ntdeltitle' => __('Remove From Bulk Edit'), 
    356                         'notitle' => __('(no title)') 
     357                        'notitle' => __('(no title)'), 
     358                        'comma' => _x( ',', 'tag delimiter' ), 
    357359                ) ); 
    358360 
    359361                $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery' ), false, 1 ); 
  • wp-admin/includes/class-wp-posts-list-table.php

     
    609609                                                        esc_html( sanitize_term_field( 'name', $c->name, $c->term_id, 'category', 'display' ) ) 
    610610                                                ); 
    611611                                        } 
    612                                         echo join( ', ', $out ); 
     612                                        /* translators: used between list items, there is a space after the comma */ 
     613                                        echo join( __( ', ' ), $out ); 
    613614                                } else { 
    614615                                        _e( 'Uncategorized' ); 
    615616                                } 
     
    629630                                                        esc_html( sanitize_term_field( 'name', $c->name, $c->term_id, 'tag', 'display' ) ) 
    630631                                                ); 
    631632                                        } 
    632                                         echo join( ', ', $out ); 
     633                                        /* translators: used between list items, there is a space after the comma */ 
     634                                        echo join( __( ', ' ), $out ); 
    633635                                } else { 
    634636                                        _e( 'No Tags' ); 
    635637                                } 
  • wp-admin/includes/ajax-actions.php

     
    6666 
    6767        $s = stripslashes( $_GET['q'] ); 
    6868 
     69        $comma = _x( ',', 'tag delimiter' ); 
     70        if ( ',' !== $comma ) 
     71                $s = str_replace( $comma, ',', $s ); 
    6972        if ( false !== strpos( $s, ',' ) ) { 
    7073                $s = explode( ',', $s ); 
    7174                $s = $s[count( $s ) - 1]; 
  • wp-admin/includes/post.php

     
    302302                        if ( empty($terms) ) 
    303303                                continue; 
    304304                        if ( is_taxonomy_hierarchical( $tax_name ) ) { 
    305                                 $tax_input[$tax_name] = array_map( 'absint', $terms ); 
     305                                $tax_input[ $tax_name ] = array_map( 'absint', $terms ); 
    306306                        } else { 
    307                                 $tax_input[$tax_name] = preg_replace( '/\s*,\s*/', ',', rtrim( trim($terms), ' ,' ) ); 
    308                                 $tax_input[$tax_name] = explode(',', $tax_input[$tax_name]); 
     307                                $comma = _x( ',', 'tag delimiter' ); 
     308                                if ( ',' !== $comma ) 
     309                                        $terms = str_replace( $comma, ',', $terms ); 
     310                                $tax_input[ $tax_name ] = explode( ',', trim( $terms, " \n\t\r\0\x0B," ) ); 
    309311                        } 
    310312                } 
    311313        } 
  • wp-admin/includes/meta-boxes.php

     
    276276        $tax_name = esc_attr($taxonomy); 
    277277        $taxonomy = get_taxonomy($taxonomy); 
    278278        $disabled = !current_user_can($taxonomy->cap->assign_terms) ? 'disabled="disabled"' : ''; 
     279        $comma = _x( ',', 'tag delimiter' ); 
    279280?> 
    280281<div class="tagsdiv" id="<?php echo $tax_name; ?>"> 
    281282        <div class="jaxtag"> 
    282283        <div class="nojs-tags hide-if-js"> 
    283284        <p><?php echo $taxonomy->labels->add_or_remove_items; ?></p> 
    284         <textarea name="<?php echo "tax_input[$tax_name]"; ?>" rows="3" cols="20" class="the-tags" id="tax-input-<?php echo $tax_name; ?>" <?php echo $disabled; ?>><?php echo get_terms_to_edit( $post->ID, $tax_name ); // textarea_escaped by esc_attr() ?></textarea></div> 
     285        <textarea name="<?php echo "tax_input[$tax_name]"; ?>" rows="3" cols="20" class="the-tags" id="tax-input-<?php echo $tax_name; ?>" <?php echo $disabled; ?>><?php echo str_replace( ',', $comma . ' ', get_terms_to_edit( $post->ID, $tax_name ) ); // textarea_escaped by esc_attr() ?></textarea></div> 
    285286        <?php if ( current_user_can($taxonomy->cap->assign_terms) ) : ?> 
    286287        <div class="ajaxtag hide-if-no-js"> 
    287288                <label class="screen-reader-text" for="new-tag-<?php echo $tax_name; ?>"><?php echo $box['title']; ?></label> 
  • wp-admin/includes/template.php

     
    264264        foreach ( $taxonomy_names as $taxonomy_name) { 
    265265                $taxonomy = get_taxonomy( $taxonomy_name ); 
    266266 
    267                 if ( $taxonomy->hierarchical && $taxonomy->show_ui ) 
    268                                 echo '<div class="post_category" id="'.$taxonomy_name.'_'.$post->ID.'">' . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array('fields'=>'ids')) ) . '</div>'; 
    269                 elseif ( $taxonomy->show_ui ) 
    270                         echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">' . esc_html( str_replace( ',', ', ', get_terms_to_edit($post->ID, $taxonomy_name) ) ) . '</div>'; 
     267                if ( $taxonomy->hierarchical && $taxonomy->show_ui ) { 
     268                                echo '<div class="post_category" id="' . $taxonomy_name . '_' . $post->ID . '">' 
     269                                        . implode( ',', wp_get_object_terms( $post->ID, $taxonomy_name, array( 'fields' => 'ids' ) ) ) . '</div>'; 
     270                } elseif ( $taxonomy->show_ui ) { 
     271                        echo '<div class="tags_input" id="'.$taxonomy_name.'_'.$post->ID.'">' 
     272                                . esc_html( str_replace( ',', ', ', get_terms_to_edit( $post->ID, $taxonomy_name ) ) ) . '</div>'; 
     273                } 
    271274        } 
    272275 
    273276        if ( !$post_type_object->hierarchical ) 
  • wp-admin/js/post.dev.js

     
    1515 
    1616tagBox = { 
    1717        clean : function(tags) { 
    18                 return tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, ''); 
     18                var comma = postL10n.comma; 
     19                if ( ',' !== comma ) 
     20                        tags = tags.replace(new RegExp(comma, 'g'), ','); 
     21                tags = tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, ''); 
     22                if ( ',' !== comma ) 
     23                        tags = tags.replace(/,/g, comma); 
     24                return tags; 
    1925        }, 
    2026 
    2127        parseTags : function(el) { 
    22                 var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'), thetags = taxbox.find('.the-tags'), current_tags = thetags.val().split(','), new_tags = []; 
     28                var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'), 
     29                        thetags = taxbox.find('.the-tags'), comma = postL10n.comma, 
     30                        current_tags = thetags.val().split(comma), new_tags = []; 
    2331                delete current_tags[num]; 
    2432 
    2533                $.each( current_tags, function(key, val) { 
     
    2937                        } 
    3038                }); 
    3139 
    32                 thetags.val( this.clean( new_tags.join(',') ) ); 
     40                thetags.val( this.clean( new_tags.join(comma) ) ); 
    3341 
    3442                this.quickClicks(taxbox); 
    3543                return false; 
     
    4654 
    4755                disabled = thetags.prop('disabled'); 
    4856 
    49                 current_tags = thetags.val().split(','); 
     57                current_tags = thetags.val().split(postL10n.comma); 
    5058                tagchecklist.empty(); 
    5159 
    5260                $.each( current_tags, function( key, val ) { 
     
    7482 
    7583        flushTags : function(el, a, f) { 
    7684                a = a || false; 
    77                 var text, tags = $('.the-tags', el), newtag = $('input.newtag', el), newtags; 
     85                var tags = $('.the-tags', el), 
     86                        newtag = $('input.newtag', el), 
     87                        comma = postL10n.comma, 
     88                        newtags, text; 
    7889 
    7990                text = a ? $(a).text() : newtag.val(); 
    8091                tagsval = tags.val(); 
    81                 newtags = tagsval ? tagsval + ',' + text : text; 
     92                newtags = tagsval ? tagsval + comma + text : text; 
    8293 
    8394                newtags = this.clean( newtags ); 
    84                 newtags = array_unique_noempty( newtags.split(',') ).join(','); 
     95                newtags = array_unique_noempty( newtags.split(comma) ).join(comma); 
    8596                tags.val(newtags); 
    8697                this.quickClicks(el); 
    8798 
     
    96107        get : function(id) { 
    97108                var tax = id.substr(id.indexOf('-')+1); 
    98109 
    99                 $.post(ajaxurl, {'action':'get-tagcloud','tax':tax}, function(r, stat) { 
     110                $.post(ajaxurl, {'action':'get-tagcloud', 'tax':tax}, function(r, stat) { 
    100111                        if ( 0 == r || 'success' != stat ) 
    101112                                r = wpAjax.broken; 
    102113 
     
    142153                        } 
    143154                }).each(function(){ 
    144155                        var tax = $(this).closest('div.tagsdiv').attr('id'); 
    145                         $(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: "," } ); 
     156                        $(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: postL10n.comma + ' ' } ); 
    146157                }); 
    147158 
    148159            // save tags on post save/publish 
  • wp-admin/js/inline-edit-post.dev.js

     
    117117                if ( 'post' == type ) { 
    118118                        // support multi taxonomies? 
    119119                        tax = 'post_tag'; 
    120                         $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } ); 
     120                        $('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } ); 
    121121                } 
    122122                $('html, body').animate( { scrollTop: 0 }, 'fast' ); 
    123123        }, 
     
    184184                $('.tags_input', rowData).each(function(){ 
    185185                        var terms = $(this).text(), 
    186186                                taxname = $(this).attr('id').replace('_' + id, ''), 
    187                                 textarea = $('textarea.tax_input_' + taxname, editRow); 
     187                                textarea = $('textarea.tax_input_' + taxname, editRow), 
     188                                comma = inlineEditL10n.comma; 
    188189 
    189                         if ( terms ) 
     190                        if ( terms ) { 
     191                                if ( ',' !== comma ) 
     192                                        terms = terms.replace(/,/g, comma); 
    190193                                textarea.val(terms); 
     194                        } 
    191195 
    192                         textarea.suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: ", " } ); 
     196                        textarea.suggest( 'admin-ajax.php?action=ajax-tag-search&tax='+taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } ); 
    193197                }); 
    194198 
    195199                // handle the post status