Make WordPress Core


Ignore:
Timestamp:
10/14/2004 07:26:41 AM (22 years ago)
Author:
saxmatt
Message:

Trackback and pingback cleanups.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/post.php

    r1793 r1794  
    1414
    1515if (!get_magic_quotes_gpc()) {
    16 $_GET    = add_magic_quotes($_GET);
    17 $_POST   = add_magic_quotes($_POST);
    18 $_COOKIE = add_magic_quotes($_COOKIE);
     16        $_GET    = add_magic_quotes($_GET);
     17        $_POST   = add_magic_quotes($_POST);
     18        $_COOKIE = add_magic_quotes($_COOKIE);
    1919}
    2020
     
    3838switch($action) {
    3939case 'post':
    40                 $standalone = 1;
    41                 require_once('admin-header.php');
    42 
    43         $post_ID = $wpdb->get_var("SELECT ID FROM $wpdb->posts ORDER BY ID DESC LIMIT 1") + 1;
    44 
    45                 $post_pingback = intval($_POST['post_pingback']);
    46                 $content = apply_filters('content_save_pre', $_POST['content']);
    47                 $content = format_to_post($content);
    48                 $excerpt = apply_filters('excerpt_save_pre',$_POST['excerpt']);
    49                 $excerpt = format_to_post($excerpt);
    50                 $post_title = $_POST['post_title'];
    51                 $post_categories = $_POST['post_category'];
    52                 $post_status = $_POST['post_status'];
    53                 $post_name = $_POST['post_name'];
    54                 $post_parent = 0;
    55                 if (isset($_POST['parent_id'])) {
    56                         $post_parent = $_POST['parent_id'];
    57                 }
    58 
    59                 if (empty($post_status)) $post_status = 'draft';
    60                 // Double-check
    61                 if ( 'publish' == $post_status && 1 == $user_level && 2 != get_option('new_users_can_blog') )
    62                         $post_status = 'draft';
    63                 $comment_status = $_POST['comment_status'];
    64                 if (empty($comment_status)) $comment_status = get_settings('default_comment_status');
    65                 $ping_status = $_POST['ping_status'];
    66                 if (empty($ping_status)) $ping_status = get_settings('default_ping_status');
    67                 $post_password = $_POST['post_password'];
    68                
    69                 if (empty($post_name)) {
    70                         if (! empty($post_title)) {
    71                                 $post_name = sanitize_title($post_title, $post_ID);
    72                         }
    73                 } else {
    74                         $post_name = sanitize_title($post_name, $post_ID);
    75                 }
    76 
    77                 $trackback = $_POST['trackback_url'];
    78         // Format trackbacks
    79         $trackback = preg_replace('|\s+|', '\n', $trackback);
     40        $standalone = 1;
     41        require_once('admin-header.php');
     42
     43        $post_ID = $wpdb->get_var("SELECT MAX(ID) FROM $wpdb->posts") + 1;
     44
     45        $post_pingback = intval($_POST['post_pingback']);
     46        $content = apply_filters('content_save_pre', $_POST['content']);
     47        $content = format_to_post($content);
     48        $excerpt = apply_filters('excerpt_save_pre',$_POST['excerpt']);
     49        $excerpt = format_to_post($excerpt);
     50        $post_title = $_POST['post_title'];
     51        $post_categories = $_POST['post_category'];
     52        $post_status = $_POST['post_status'];
     53        $post_name = $_POST['post_name'];
     54        $post_parent = 0;
     55
     56        if ( isset($_POST['parent_id']) )
     57                $post_parent = $_POST['parent_id'];
     58
     59        if ( empty($post_status) )
     60                $post_status = 'draft';
     61        // Double-check
     62        if ( 'publish' == $post_status && 1 == $user_level && 2 != get_option('new_users_can_blog') )
     63                $post_status = 'draft';
     64        $comment_status = $_POST['comment_status'];
     65        if ( empty($comment_status) )
     66                $comment_status = get_option('default_comment_status');
     67        $ping_status = $_POST['ping_status'];
     68        if ( empty($ping_status) )
     69                $ping_status = get_option('default_ping_status');
     70        $post_password = $_POST['post_password'];
     71       
     72        if ( empty($post_name) ) {
     73                if ( !empty($post_title) )
     74                        $post_name = sanitize_title($post_title, $post_ID);
     75        } else {
     76                $post_name = sanitize_title($post_name, $post_ID);
     77        }
     78
     79        $trackback = $_POST['trackback_url'];
     80        $trackback = preg_replace('|\s+|', "\n", $trackback);
    8081
    8182        if ($user_level == 0)
     
    9394                $mn = ($mn > 59) ? $mn - 60 : $mn;
    9495                $ss = ($ss > 59) ? $ss - 60 : $ss;
    95         $now = "$aa-$mm-$jj $hh:$mn:$ss";
    96         $now_gmt = get_gmt_from_date("$aa-$mm-$jj $hh:$mn:$ss");
    97         } else {
    98         $now = current_time('mysql');
    99         $now_gmt = current_time('mysql', 1);
     96                $now = "$aa-$mm-$jj $hh:$mn:$ss";
     97                $now_gmt = get_gmt_from_date("$aa-$mm-$jj $hh:$mn:$ss");
     98        } else {
     99                $now = current_time('mysql');
     100                $now_gmt = current_time('mysql', 1);
    100101        }
    101102
     
    110111                        (ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt,  post_status, comment_status, ping_status, post_password, post_name, to_ping, post_modified, post_modified_gmt, post_parent)
    111112                        VALUES
    112                         ('0', '$user_ID', '$now', '$now_gmt', '$content', '$post_title', '$excerpt', '$post_status', '$comment_status', '$ping_status', '$post_password', '$post_name', '$trackback', '$now', '$now_gmt', '$post_parent')
     113                        ('$post_ID', '$user_ID', '$now', '$now_gmt', '$content', '$post_title', '$excerpt', '$post_status', '$comment_status', '$ping_status', '$post_password', '$post_name', '$trackback', '$now', '$now_gmt', '$post_parent')
    113114                        ";
    114115
     
    128129                }
    129130        } else {
    130                 $location = 'post.php';
    131         }
     131                $location = 'post.php?posted=true';
     132        }
     133
    132134        if ( '' != $_POST['advanced'] || isset($_POST['save']) )
    133135                $location = "post.php?action=edit&post=$post_ID";
     
    138140        header("Location: $location"); // Send user on their way while we keep working
    139141
    140 
    141142        // Insert categories
    142143        // Check to make sure there is a category, if not just set it to some default
    143         if (!$post_categories) $post_categories[] = 1;
     144        if (!$post_categories) $post_categories[] = get_option('default_category');
    144145        foreach ($post_categories as $post_category) {
    145146                // Double check it's not there already
    146147                $exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_ID AND category_id = $post_category");
    147148
    148                  if (!$exists && $result) {
     149                 if (!$exists) {
    149150                        $wpdb->query("
    150151                        INSERT INTO $wpdb->post2cat
     
    159160
    160161        $wpdb->query("UPDATE $wpdb->posts SET guid = '" . get_permalink($post_ID) . "' WHERE ID = '$post_ID'");
    161        
    162         if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
    163                         sleep($sleep_after_edit);
    164         }
    165 
    166         if ($post_status == 'publish') {
    167 
    168                 if ($post_pingback) {
     162
     163        do_action('save_post', $post_ID);
     164
     165        if ('publish' == $post_status) {
     166                if ($post_pingback)
    169167                        pingback($content, $post_ID);
    170                 }
    171                
     168                do_trackbacks($post_ID);
    172169                do_action('publish_post', $post_ID);
    173 
    174                 // Time for trackbacks
    175                 $to_ping = $wpdb->get_var("SELECT to_ping FROM $wpdb->posts WHERE ID = $post_ID");
    176                 $pinged = $wpdb->get_var("SELECT pinged FROM $wpdb->posts WHERE ID = $post_ID");
    177                 $pinged = explode("\n", $pinged);
    178                 if ('' != $to_ping) {
    179                         if (strlen($excerpt) > 0) {
    180                                 $the_excerpt = (strlen(strip_tags($excerpt)) > 255) ? substr(strip_tags($excerpt), 0, 252) . '...' : strip_tags($excerpt)       ;
    181                         } else {
    182                                 $the_excerpt = (strlen(strip_tags($content)) > 255) ? substr(strip_tags($content), 0, 252) . '...' : strip_tags($content);
    183                         }
    184                         $excerpt = stripslashes($the_excerpt);
    185                         $to_pings = explode("\n", $to_ping);
    186                         foreach ($to_pings as $tb_ping) {
    187                                 $tb_ping = trim($tb_ping);
    188                                 if (!in_array($tb_ping, $pinged)) {
    189                                  trackback($tb_ping, stripslashes($post_title), $excerpt, $post_ID);
    190                                 }
    191                         }
    192                 }
    193 
    194         } // end if publish
     170        }
    195171
    196172        if ($post_status == 'static') {
    197173                generate_page_rewrite_rules();
    198 
    199174                add_post_meta($post_ID, '_wp_page_template',  $_POST['page_template'], true);
    200175        }
     
    350325                $location = 'post.php';
    351326        }
    352         header ('Location: ' . $location); // Send user on their way while we keep working
     327        //header ('Location: ' . $location); // Send user on their way while we keep working
    353328
    354329$now = current_time('mysql');
     
    402377                if (!in_array($new_cat, $old_categories))
    403378                        $wpdb->query("INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_ID, $new_cat)");
    404         }
    405        
    406         if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
    407                 sleep($sleep_after_edit);
    408379        }
    409380
     
    447418        }
    448419
    449         // are we going from draft/private to published?
    450         if ($prev_status != 'publish' && $post_status == 'publish') {
    451                 if ($post_pingback) {
    452                         pingback($content, $post_ID);
    453                 }
    454         } // end if moving from draft/private to published
     420        if ($prev_status != 'publish' && $post_status == 'publish')
     421                do_action('private_to_published', $post_ID);
     422
    455423        if ($post_status == 'publish') {
    456424                do_action('publish_post', $post_ID);
    457 
    458                 // Trackback time.
    459                 $to_ping = trim($wpdb->get_var("SELECT to_ping FROM $wpdb->posts WHERE ID = $post_ID"));
    460                 $pinged = trim($wpdb->get_var("SELECT pinged FROM $wpdb->posts WHERE ID = $post_ID"));
    461                 $pinged = explode("\n", $pinged);
    462                 if ('' != $to_ping) {
    463                         if (strlen($excerpt) > 0) {
    464                                 $the_excerpt = (strlen(strip_tags($excerpt)) > 255) ? substr(strip_tags($excerpt), 0, 252) . '...' : strip_tags($excerpt)       ;
    465                         } else {
    466                                 $the_excerpt = (strlen(strip_tags($content)) > 255) ? substr(strip_tags($content), 0, 252) . '...' : strip_tags($content);
    467                         }
    468                         $excerpt = stripslashes($the_excerpt);
    469                         $to_pings = explode("\n", $to_ping);
    470                         foreach ($to_pings as $tb_ping) {
    471                                 $tb_ping = trim($tb_ping);
    472                                 if (!in_array($tb_ping, $pinged)) {
    473                                  trackback($tb_ping, stripslashes($post_title), $excerpt, $post_ID);
    474                                 }
    475                         }
    476                 }
    477         } // end if publish
     425                do_trackbacks($post_ID);
     426                if ( get_option('default_pingback_flag') )
     427                        pingback($content, $post_ID);
     428        }
    478429
    479430        if ($post_status == 'static') {
     
    500451
    501452        $post_id = intval($_GET['post']);
    502         $postdata = get_postdata($post_id) or die(sprintf(__('Oops, no post with this ID. <a href="%s">Go back</a>!'), 'post.php'));
    503         $authordata = get_userdata($postdata['Author_ID']);
     453        $postdata = $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = '$post_id'") or die(sprintf(__('Oops, no post with this ID. <a href="%s">Go back</a>!'), 'post.php'));
     454        $authordata = get_userdata($postdata->post_author);
    504455
    505456        if ($user_level < $authordata->user_level)
     
    515466
    516467    $meta = $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = $post_id");
    517 
    518         if (isset($sleep_after_edit) && $sleep_after_edit > 0) {
    519                 sleep($sleep_after_edit);
    520         }
    521468
    522469        $sendback = $_SERVER['HTTP_REFERER'];
Note: See TracChangeset for help on using the changeset viewer.