WordPress.org

Make WordPress Core

Ticket #7607: wordpress_gallery-2.7.x.patch

File wordpress_gallery-2.7.x.patch, 21.7 KB (added by ShaneF, 10 years ago)

grrrr... extra space not needed

  • wp-admin/includes/media.php

     
    5555
    5656        $html = get_image_tag($id, $alt, $title, $align, $size);
    5757
     58
    5859        $rel = $rel ? ' rel="attachment wp-att-'.attribute_escape($id).'"' : '';
    5960
    6061        if ( $url )
    61                 $html = '<a href="' . clean_url($url) . "\"$rel>$html</a>";
     62                $html = '<a href="' . clean_url($url) . "\" title=\"". attribute_escape($title) ."\"$rel>$html</a>";
    6263
    6364        $html = apply_filters( 'image_send_to_editor', $html, $id, $alt, $title, $align, $url, $size );
    6465
     
    256257                        $post['post_title'] = $attachment['post_title'];
    257258                if ( isset($attachment['post_excerpt']) )
    258259                        $post['post_excerpt'] = $attachment['post_excerpt'];
     260                if ( isset($attachment['group_number']) )
     261                        $post['group_number'] = $attachment['group_number'];
    259262                if ( isset($attachment['menu_order']) )
    260263                        $post['menu_order'] = $attachment['menu_order'];
    261264
     
    274277                                wp_set_object_terms($attachment_id, array_map('trim', preg_split('/,+/', $attachment[$t])), $t, false);
    275278        }
    276279
    277         if ( isset($_POST['insert-gallery']) )
    278                 return media_send_to_editor('[gallery]');
    279 
     280        if ( isset($_POST['insert-gallery']) ) {
     281                if ( isset($_POST['gallery_insert']) ) {
     282                        return media_send_to_editor('[gallery group="'.$_POST['gallery_insert'].'"]');
     283                } else {
     284                        return media_send_to_editor('[gallery]');
     285                }
     286               
     287        }
     288       
     289        if ( isset($_POST['gallery_delete']) && !is_null($_POST['gallery_delete']) )
     290                wp_delete_gallery($post, $_POST['gallery_delete']);
     291       
     292        if ( isset($_POST['new-gallery']) )
     293                wp_new_gallery($post);
     294               
    280295        if ( isset($_POST['send']) ) {
    281296                $keys = array_keys($_POST['send']);
    282297                $send_id = (int) array_shift($keys);
     
    317332                        $align = attribute_escape($_POST['insertonly']['align']);
    318333                        $class = " class='align$align'";
    319334                }
     335                if ( isset($_POST['insertonly']['title']) ) {
     336                        $title = " title='".attribute_escape($_POST['insertonly']['title'])."'";
     337                }
    320338                if ( !empty($src) )
    321                         $html = "<img src='$src' alt='$alt'$class />";
     339                        $html = "<img src='$src' alt='$alt'$title$class />";
    322340                return media_send_to_editor($html);
    323341        }
    324342
     
    637655add_filter('attachment_fields_to_save', 'image_attachment_fields_to_save', 10, 2);
    638656
    639657function image_media_send_to_editor($html, $attachment_id, $attachment) {
     658
    640659        $post =& get_post($attachment_id);
    641660        if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
    642661                $url = $attachment['url'];
     
    662681add_filter('media_send_to_editor', 'image_media_send_to_editor', 10, 3);
    663682
    664683function get_attachment_fields_to_edit($post, $errors = null) {
     684       
    665685        if ( is_int($post) )
    666686                $post =& get_post($post);
    667687        if ( is_array($post) )
     
    691711                        'html'       => image_link_input_fields($post, get_option('image_default_link_type')),
    692712                        'helps'      => __('Enter a link URL or click above for presets.'),
    693713                ),
     714        'group_number'   => array(
     715                        'value'      => $edit_post->group_number
     716                ),
    694717        'menu_order'   => array(
    695718                        'label'      => __('Order'),
    696719                        'value'      => $edit_post->menu_order
     
    726749        return $form_fields;
    727750}
    728751
    729 function get_media_items( $post_id, $errors ) {
     752function get_media_items( $post_id, $group, $errors ) {
     753        global $wpdb;
    730754        if ( $post_id ) {
    731755                $post = get_post($post_id);
    732                 if ( $post && $post->post_type == 'attachment' )
     756                if ( $post && $post->post_type == 'attachment' ) {
    733757                        $attachments = array($post->ID => $post);
    734                 else
    735                         $attachments = get_children( array( 'post_parent' => $post_id, 'post_type' => 'attachment', 'orderby' => 'menu_order ASC, ID', 'order' => 'DESC') );
     758                } else {
     759                        $attachments = get_children( array( 'post_parent' => $post_id, 'post_type' => 'attachment', 'group_number' => $group, 'orderby' => 'menu_order ASC, ID', 'order' => 'DESC'));           
     760                        $images_in_group = intval($wpdb->get_var($wpdb->prepare("SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = '%d' AND group_number = %d", $post_id, $group)));
     761                       
     762                        if ($images_in_group == 0) {
     763                                $output = "\n<div class='media-item media-no-items child-of-$post_id preloaded'><div class='progress'><div class='bar'></div></div><div id='media-upload-error-$id'></div><div class='filename'></div><div class='filename new'>". __("No images in this group. Move items to this group.") ."</div></div>";
     764                                return $output;
     765                        }
     766                }
    736767        } else {
    737768                if ( is_array($GLOBALS['wp_the_query']->posts) )
    738769                        foreach ( $GLOBALS['wp_the_query']->posts as $attachment )
     
    743774                return '';
    744775
    745776        foreach ( $attachments as $id => $attachment )
    746                 if ( $item = get_media_item( $id, array( 'errors' => isset($errors[$id]) ? $errors[$id] : null) ) )
     777                if ( $item = get_media_item( $id, $group, array( 'errors' => isset($errors[$id]) ? $errors[$id] : null) ) )
    747778                        $output .= "\n<div id='media-item-$id' class='media-item child-of-$attachment->post_parent preloaded'><div class='progress'><div class='bar'></div></div><div id='media-upload-error-$id'></div><div class='filename'></div>$item\n</div>";
    748779
    749780        return $output;
    750781}
    751782
    752 function get_media_item( $attachment_id, $args = null ) {
     783function get_media_item( $attachment_id, $group = null, $args = null ) {
    753784        global $redir_tab;
    754785
    755786        $default_args = array( 'errors' => null, 'send' => true, 'delete' => true, 'toggle' => true );
     
    771802
    772803        $post = get_post($attachment_id);
    773804
     805        if (!is_null($group) && ($post->group_number != $group)) { return; }
     806
    774807        $filename = basename($post->guid);
    775808        $title = attribute_escape($post->post_title);
    776809        $description = attribute_escape($post->post_content);
     
    804837        $gallery = ( (isset($_REQUEST['tab']) && 'gallery' == $_REQUEST['tab']) || (isset($redir_tab) && 'gallery' == $redir_tab) ) ? true : false;
    805838        $order = '';
    806839
    807         foreach ( $form_fields as $key => $val ) {
     840        foreach ( $form_fields as $key => $val ) {             
     841               
    808842                if ( 'menu_order' == $key ) {
    809843                        if ( $gallery )
    810844                                $order = '<div class="menu_order"> <input class="menu_order_input" type="text" id="attachments['.$attachment_id.'][menu_order]" name="attachments['.$attachment_id.'][menu_order]" value="'.$val['value'].'" /></div>';
     
    812846                                $order = '<input type="hidden" name="attachments['.$attachment_id.'][menu_order]" value="'.$val['value'].'" />';
    813847
    814848                        unset($form_fields['menu_order']);
    815                         break;
    816849                }
     850               
     851                if ( 'group_number' == $key ) {                 
     852                        $groupnum = '<input type="hidden" class="group-value" name="attachments['.$attachment_id.'][group_number]" value="'.$val['value'].'" />';
     853                        unset($form_fields['group_number']);
     854                }
    817855        }
    818 
     856       
    819857        $item = "
    820858        $type
    821859        $toggle_links
    822860        $order
     861        $groupnum
    823862        <div class='filename new'>$display_title</div>
    824863        <table class='slidetoggle describe $class'>
    825864                <thead class='media-item-info'>
     
    10001039        <p>
    10011040        <input type="file" name="async-upload" id="async-upload" /> <input type="submit" class="button" name="html-upload" value="<?php echo attribute_escape(__('Upload')); ?>" /> <a href="#" onclick="return top.tb_remove();"><?php _e('Cancel'); ?></a>
    10021041        </p>
    1003 
    10041042        <br class="clear" />
    10051043        <?php if ( is_lighttpd_before_150() ): ?>
    10061044        <p><?php _e('If you want to use all capabilities of the uploader, like uploading multiple files at once, please upgrade to lighttpd 1.5.'); ?></p>
     
    10821120                html = '<img alt="'+alt+'" src="'+f.src.value+'"'+title+cls+' width="'+t.width+'" height="'+t.height+'" />';
    10831121
    10841122                if ( f.url.value )
    1085                         html = '<a href="'+f.url.value+'">'+html+'</a>';
     1123                        html = '<a href="'+f.url.value+'"'+title+'>'+html+'</a>';
    10861124
    10871125                if ( caption )
    10881126                        html = '[caption id="" align="'+t.align+'" width="'+t.width+'" caption="'+caption+'"]'+html+'[/caption]';
     
    11391177}
    11401178
    11411179function media_upload_gallery_form($errors) {
    1142         global $redir_tab;
     1180        global $wpdb, $redir_tab;
    11431181
    11441182        $redir_tab = 'gallery';
    11451183        media_upload_header();
    11461184
    11471185        $post_id = intval($_REQUEST['post_id']);
     1186        $group_results = $wpdb->get_row($wpdb->prepare("SELECT groups FROM $wpdb->posts WHERE ID = %d", $post_id));
     1187        $groups = split(",", $group_results->groups);
     1188       
    11481189        $form_action_url = admin_url("media-upload.php?type={$GLOBALS['type']}&tab=gallery&post_id=$post_id");
    11491190?>
    11501191
     
    11541195        var preloaded = $(".media-item.preloaded");
    11551196        if ( preloaded.length > 0 ) {
    11561197                preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');});
    1157                 updateMediaForm();
    11581198        }
     1199       
     1200        jQuery("a.del-group").click(function () {
     1201               
     1202                var deleteConfirmation = confirm('<?php _e("Are you sure you want to delete this gallery group?"); ?>');
     1203                if (!deleteConfirmation) { return; }
     1204                if (jQuery("#media-group-" + jQuery(this).attr('value') + " .media-item input.group-value").length)
     1205                {
     1206                        jQuery.each(jQuery("#media-group-delete-" + jQuery(this).attr('value') + " .media-item input.group-value"), function(i, id) {
     1207                                jQuery(id)[0].value = 0;        //      we are going to set all the items to group 0           
     1208                        });
     1209                }
     1210                jQuery("#gallery-delete").val( jQuery(this).attr('value') );    //      set the gallery we are deleting
     1211                jQuery("#media-group-" + jQuery(this).attr('value')).hide();    //      hide the gallery and then...
     1212                jQuery(".savebutton").click();
     1213               
     1214        });
     1215       
     1216        jQuery("a.insert-group").click(function () {
     1217                jQuery("#gallery-insert").val( jQuery(this).attr('value') );    //      set the gallery we are inserting
     1218                jQuery(".insert-gallery").click();             
     1219        });
     1220       
     1221       
    11591222});
    11601223-->
    11611224</script>
     
    11631226<form enctype="multipart/form-data" method="post" action="<?php echo attribute_escape($form_action_url); ?>" class="media-upload-form validate" id="gallery-form">
    11641227<?php wp_nonce_field('media-form'); ?>
    11651228<?php //media_upload_form( $errors ); ?>
     1229
     1230<div id="media-items">
     1231<?php
     1232foreach ($groups as $group => $group_number)
     1233{
     1234?>
     1235<div id="media-group-<?php echo $group_number; ?>" class="media-groups">
     1236<input type="hidden" id="media-group-value-<?php echo $group_number; ?>" value="<?php echo $group_number; ?>" />
    11661237<table class="widefat">
    11671238<thead><tr>
    1168 <th><?php _e('Media'); ?></th>
     1239<th>
     1240<?php
     1241        if ($group_number > 0) {
     1242               
     1243                $delete = "<a href=\"#media-group-delete-value-".$group_number."\" value=\"".$group_number."\" class=\"del-group\">" . __('Delete Group') . "</a>";
     1244                $insert = "<a href=\"#media-group-insert-value-".$group_number."\" value=\"".$group_number."\" class=\"insert-group\">" . __('Insert Group') . "</a>";
     1245                $group_link = "<small>(".$delete." | " .$insert.")</small>";
     1246               
     1247                _e('Media Group ('.$group_number.'): ' . $group_link);
     1248        } else {
     1249                _e('Media: Non-grouped items.');
     1250        }
     1251?>
     1252</th>
    11691253<th class="order-head"><?php _e('Order'); ?></th>
    11701254</tr></thead>
    11711255</table>
    1172 <div id="media-items">
    1173 <?php echo get_media_items($post_id, $errors); ?>
     1256<?php echo get_media_items($post_id, $group_number, $errors); ?>
    11741257</div>
     1258<?php
     1259}
     1260?>
     1261</div>
    11751262<p class="ml-submit">
    11761263<input type="submit" class="button savebutton" name="save" value="<?php echo attribute_escape( __( 'Save all changes' ) ); ?>" />
    1177 <input type="submit" class="button insert-gallery" name="insert-gallery" value="<?php echo attribute_escape( __( 'Insert gallery into post' ) ); ?>" />
     1264<input type="submit" class="button new-gallery" name="new-gallery" value="<?php echo attribute_escape( __( 'Create new gallery' ) ); ?>" />
     1265<input type="submit" class="button insert-gallery" name="insert-gallery" value="<?php echo attribute_escape( __( 'Insert full gallery into post' ) ); ?>" />
     1266<input type="hidden" name="gallery_delete" id="gallery-delete" value="" />
     1267<input type="hidden" name="gallery_insert" id="gallery-insert" value="" />
    11781268<input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
    11791269<input type="hidden" name="type" value="<?php echo attribute_escape( $GLOBALS['type'] ); ?>" />
    11801270<input type="hidden" name="tab" value="<?php echo attribute_escape( $GLOBALS['tab'] ); ?>" />
    11811271</p>
    11821272</form>
     1273
     1274<script type="text/javascript">
     1275<!--
     1276        updateMediaForm();
     1277-->
     1278</script>
     1279
    11831280<?php
    11841281}
    11851282
     
    13191416</script>
    13201417
    13211418<div id="media-items">
    1322 <?php echo get_media_items(null, $errors); ?>
     1419<?php echo get_media_items(null, null, $errors); ?>
    13231420</div>
    13241421<p class="ml-submit">
    13251422<input type="submit" class="button savebutton" name="save" value="<?php echo attribute_escape( __( 'Save all changes' ) ); ?>" />
  • wp-admin/includes/schema.php

     
    119119  post_content_filtered text NOT NULL,
    120120  post_parent bigint(20) NOT NULL default '0',
    121121  guid varchar(255) NOT NULL default '',
     122  groups varchar(255) NOT NULL default '0',
     123  group_number int(11) NOT NULL default '0',
    122124  menu_order int(11) NOT NULL default '0',
    123125  post_type varchar(20) NOT NULL default 'post',
    124126  post_mime_type varchar(100) NOT NULL default '',
  • wp-admin/includes/upgrade.php

     
    764764function upgrade_270() {
    765765        if ( $wp_current_db_version < 8530 )
    766766                populate_roles_270();
     767       
     768        add_clean_index($wpdb->posts, 'groups');
     769        add_clean_index($wpdb->posts, 'group_number');
    767770}
    768771
    769772
  • wp-admin/js/gallery.js

     
    11jQuery(function($) {
    22        var gallerySortable;
     3
    34        var gallerySortableInit = function() {
    45                gallerySortable = $('#media-items').sortable( {
    56                        items: '.media-item',
    67                        placeholder: 'sorthelper',
    78                        axis: 'y',
    89                        distance: 2,
    9                         update: galleryReorder
     10                        update: galleryHandle,
    1011                } );
    1112        }
    12 
    13         // When an update has occurred, adjust the order for each item
     13       
     14        var galleryHandle = function (e, sort) {
     15                galleryReorder(e, sort);
     16                gallerySortGroups();
     17        }
     18       
     19        // @todo: fix me!
     20        // When an update has occurred, adjust the order for each item..
    1421        var galleryReorder = function(e, sort) {
     22                var o = 0;
    1523                jQuery.each(sort['element'].sortable('toArray'), function(i, id) {
    16                         jQuery('#' + id + ' .menu_order input')[0].value = (1+i);
     24                        if (id)
     25                        {
     26                                o++;
     27                                jQuery('#' + id + ' .menu_order input')[0].value = o;
     28                        }
    1729                });
    1830        }
    19 
     31       
     32        var gallerySortGroups = function () {
     33                var mediaGroups = jQuery(".media-groups").length;
     34                for (g = 0; g < mediaGroups; g++)
     35                {
     36                        jQuery.each(jQuery("#media-group-" + g + " .media-item input.group-value"), function(i, id) {
     37                                jQuery(id)[0].value = g;               
     38                        });
     39                }
     40        }
     41       
    2042        // initialize sortable
    2143        gallerySortableInit();
    2244});
  • wp-admin/post.php

     
    8383        check_admin_referer('add-post');
    8484
    8585        if ( 'post-quickpress-publish' == $action )
     86               
     87                $_POST['comment_status'] = get_option('default_comment_status');
     88                $_POST['ping_status'] = get_option('default_ping_status');
     89               
    8690                $_POST['publish'] = 'publish'; // tell write_post() to publish
    8791
    8892        if ( !empty( $_POST['quickpress_post_ID'] ) ) {
  • wp-includes/js/swfupload/handlers.js

     
    125125        }
    126126
    127127        // Only show Save buttons when there is at least one file.
    128         if ( jQuery('#media-items>*').not('.media-blank').length > 0 )
     128        if ( jQuery('#media-items .media-item').not('.media-no-items').length > 0 )
    129129                jQuery('.savebutton').show();
    130130        else
    131131                jQuery('.savebutton').hide();
    132132
     133        // Only show new Gallery button when there are at least two files.
     134        if ( jQuery('#media-items .media-item').not('.media-no-items').length > 1 )
     135                jQuery('.new-gallery').show();
     136        else
     137                jQuery('.new-gallery').hide();
     138
    133139        // Only show Gallery button when there are at least two files.
    134         if ( jQuery('#media-items>*').length > 1 )
     140        if ( jQuery('#media-items .media-groups').length > 1 )
    135141                jQuery('.insert-gallery').show();
    136142        else
    137143                jQuery('.insert-gallery').hide();
     144               
    138145}
    139146
    140147function uploadSuccess(fileObj, serverData) {
  • wp-includes/media.php

     
    487487                'icontag'    => 'dt',
    488488                'captiontag' => 'dd',
    489489                'columns'    => 3,
     490                'group'          => null,
    490491                'size'       => 'thumbnail',
    491492        ), $attr));
    492493
     
    508509        $captiontag = tag_escape($captiontag);
    509510        $columns = intval($columns);
    510511        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
    511 
     512       
    512513        $output = apply_filters('gallery_style', "
    513514                <style type='text/css'>
    514515                        .gallery {
     
    528529                </style>
    529530                <!-- see gallery_shortcode() in wp-includes/media.php -->
    530531                <div class='gallery'>");
    531 
     532       
    532533        foreach ( $attachments as $id => $attachment ) {
    533                 $link = wp_get_attachment_link($id, $size, true);
    534                 $output .= "<{$itemtag} class='gallery-item'>";
    535                 $output .= "
    536                         <{$icontag} class='gallery-icon'>
    537                                 $link
    538                         </{$icontag}>";
    539                 if ( $captiontag && trim($attachment->post_excerpt) ) {
     534       
     535                        if (!is_null($group)) {
     536                                if ($attachment->group_number != $group) {
     537                                        continue;
     538                                }
     539                        } else {
     540                                if ($attachment->group_number == 0) {
     541                                        continue;
     542                                }
     543                        }
     544       
     545                        $link = wp_get_attachment_link($id, $size, true);
     546                        $output .= "<{$itemtag} class='gallery-item'>";
    540547                        $output .= "
    541                                 <{$captiontag} class='gallery-caption'>
    542                                 {$attachment->post_excerpt}
    543                                 </{$captiontag}>";
    544                 }
    545                 $output .= "</{$itemtag}>";
    546                 if ( $columns > 0 && ++$i % $columns == 0 )
    547                         $output .= '<br style="clear: both" />';
     548                                <{$icontag} class='gallery-icon'>
     549                                        $link
     550                                </{$icontag}>";
     551                        if ( $captiontag && trim($attachment->post_excerpt) ) {
     552                                $output .= "
     553                                        <{$captiontag} class='gallery-caption'>
     554                                        {$attachment->post_excerpt}
     555                                        </{$captiontag}>";
     556                        }
     557                        $output .= "</{$itemtag}>";
     558                        if ( $columns > 0 && ++$i % $columns == 0 )
     559                                $output .= '<br style="clear: both" />';
    548560        }
    549561
    550562        $output .= "
  • wp-includes/post.php

     
    14401440        }
    14411441
    14421442        // expected_slashed (everything!)
    1443         $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'guid' ) );
     1443        $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'guid', 'groups' ) );
    14441444        $data = apply_filters('wp_insert_post_data', $data, $postarr);
    14451445        $data = stripslashes_deep( $data );
    14461446        $where = array( 'ID' => $post_ID );
     
    15131513}
    15141514
    15151515/**
     1516 * Insert a new gallery into the post.
     1517 *
     1518 * @since 2.7.0
     1519 *
     1520 * @param array $postarr post data
     1521 */
     1522function wp_new_gallery($postarr = array())
     1523{
     1524        if ( is_object($postarr) )
     1525                $postarr = get_object_vars($postarr);
     1526
     1527        // First, get all of the original fields
     1528        $post = wp_get_single_post($postarr['post_parent'], ARRAY_A);
     1529
     1530        // create new group
     1531        $last_group = split(",", $post['groups']);
     1532        $new_groups = array(count($last_group) => count($last_group));
     1533        $post_newgroup['groups'] = implode(",", array_merge($last_group, $new_groups));
     1534       
     1535        // Merge old and new fields with new fields overwriting old ones.
     1536        $postarr = array_merge($post, $post_newgroup);
     1537       
     1538        // update the post
     1539        wp_update_post($postarr);
     1540       
     1541}
     1542
     1543/**
     1544 *
     1545 * Delete a gallery and reset the gallery numbers of those items inside the gallery.
     1546 *
     1547 * @since 2.7.0
     1548 *
     1549 * @param array $postarr post data
     1550 * @param int $gallery_number data
     1551 */
     1552function wp_delete_gallery($postarr = array(), $gallery_number)
     1553{
     1554        global $wpdb;
     1555
     1556        if ( is_object($postarr) )
     1557                $postarr = get_object_vars($postarr);
     1558
     1559        // First, get all of the original fields
     1560        $post = wp_get_single_post($postarr['post_parent'], ARRAY_A);
     1561       
     1562        // groups
     1563        $current_groups = split(",", $post['groups']);
     1564        $i = 0;
     1565        foreach ($current_groups as $item => $value)
     1566        {
     1567                if ($gallery_number != $value) {
     1568                        $new_groupnumber = $i;
     1569                        $newgroup[] = $new_groupnumber;
     1570                        $wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET group_number = %d WHERE post_parent = %d AND group_number = %d", $new_groupnumber, $post['ID'], $value));
     1571                        $i++;
     1572                }
     1573        }
     1574        $new_groups_update = array("groups" => implode(",", $newgroup));
     1575
     1576        // Merge old and new fields with new fields overwriting old ones.
     1577        $postarr = array_merge($post, $new_groups_update);
     1578       
     1579        // update the post
     1580        wp_update_post($postarr);
     1581}
     1582
     1583/**
    15161584 * Update a post with new post data.
    15171585 *
    15181586 * The date does not have to be set for drafts. You can set the date and it will
     
    23162384                $pinged = '';
    23172385
    23182386        // expected_slashed (everything!)
    2319         $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid' ) );
     2387        $data = compact( array( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid', 'group_number' ) );
    23202388        $data = stripslashes_deep( $data );
    23212389
    23222390        if ( $update ) {