Changeset 3900

Show
Ignore:
Timestamp:
06/22/06 19:44:36 (2 years ago)
Author:
ryan
Message:

Move ping and trackback functions to comment.php (maybe to ping.php later?) #2525

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-includes/comment.php

    r3887 r3900  
    437437} 
    438438 
    439 function pingback($content, $post_ID) { 
    440     global $wp_version, $wpdb; 
    441     include_once (ABSPATH . WPINC . '/class-IXR.php'); 
    442  
    443     // original code by Mort (http://mort.mine.nu:8080) 
    444     $log = debug_fopen(ABSPATH . '/pingback.log', 'a'); 
    445     $post_links = array(); 
    446     debug_fwrite($log, 'BEGIN '.date('YmdHis', time())."\n"); 
    447  
    448     $pung = get_pung($post_ID); 
    449  
    450     // Variables 
    451     $ltrs = '\w'; 
    452     $gunk = '/#~:.?+=&%@!\-'; 
    453     $punc = '.:?\-'; 
    454     $any = $ltrs . $gunk . $punc; 
    455  
    456     // Step 1 
    457     // Parsing the post, external links (if any) are stored in the $post_links array 
    458     // This regexp comes straight from phpfreaks.com 
    459     // http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php 
    460     preg_match_all("{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp); 
    461  
    462     // Debug 
    463     debug_fwrite($log, 'Post contents:'); 
    464     debug_fwrite($log, $content."\n"); 
    465  
    466     // Step 2. 
    467     // Walking thru the links array 
    468     // first we get rid of links pointing to sites, not to specific files 
    469     // Example: 
    470     // http://dummy-weblog.org 
    471     // http://dummy-weblog.org/ 
    472     // http://dummy-weblog.org/post.php 
    473     // We don't wanna ping first and second types, even if they have a valid <link/> 
    474  
    475     foreach($post_links_temp[0] as $link_test) : 
    476         if ( !in_array($link_test, $pung) && (url_to_postid($link_test) != $post_ID) // If we haven't pung it already and it isn't a link to itself 
    477                 && !is_local_attachment($link_test) ) : // Also, let's never ping local attachments. 
    478             $test = parse_url($link_test); 
    479             if (isset($test['query'])) 
    480                 $post_links[] = $link_test; 
    481             elseif(($test['path'] != '/') && ($test['path'] != '')) 
    482                 $post_links[] = $link_test; 
    483         endif; 
    484     endforeach; 
    485  
    486     do_action('pre_ping',  array(&$post_links, &$pung)); 
    487  
    488     foreach ($post_links as $pagelinkedto){ 
    489         debug_fwrite($log, "Processing -- $pagelinkedto\n"); 
    490         $pingback_server_url = discover_pingback_server_uri($pagelinkedto, 2048); 
    491  
    492         if ($pingback_server_url) { 
    493             @ set_time_limit( 60 );  
    494              // Now, the RPC call 
    495             debug_fwrite($log, "Page Linked To: $pagelinkedto \n"); 
    496             debug_fwrite($log, 'Page Linked From: '); 
    497             $pagelinkedfrom = get_permalink($post_ID); 
    498             debug_fwrite($log, $pagelinkedfrom."\n"); 
    499  
    500             // using a timeout of 3 seconds should be enough to cover slow servers 
    501             $client = new IXR_Client($pingback_server_url); 
    502             $client->timeout = 3; 
    503             $client->useragent .= ' -- WordPress/' . $wp_version; 
    504  
    505             // when set to true, this outputs debug messages by itself 
    506             $client->debug = false; 
    507  
    508             if ( $client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto ) ) 
    509                 add_ping( $post_ID, $pagelinkedto ); 
    510             else 
    511                 debug_fwrite($log, "Error.\n Fault code: ".$client->getErrorCode()." : ".$client->getErrorMessage()."\n"); 
    512         } 
    513     } 
    514  
    515     debug_fwrite($log, "\nEND: ".time()."\n****************************\n"); 
    516     debug_fclose($log); 
    517 
     439// 
     440// Ping and trackback functions. 
     441// 
    518442 
    519443function discover_pingback_server_uri($url, $timeout_bytes = 2048) { 
     
    607531} 
    608532 
    609 function is_local_attachment($url) { 
    610     if ( !strstr($url, get_bloginfo('home') ) ) 
    611         return false; 
    612     if ( strstr($url, get_bloginfo('home') . '/?attachment_id=') ) 
    613         return true; 
    614     if ( $id = url_to_postid($url) ) { 
    615         $post = & get_post($id); 
    616         if ( 'attachment' == $post->post_type ) 
    617             return true; 
    618     } 
    619     return false; 
     533function do_all_pings() { 
     534    global $wpdb; 
     535 
     536    // Do pingbacks 
     537    while ($ping = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) { 
     538        $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';"); 
     539        pingback($ping->post_content, $ping->ID); 
     540    } 
     541     
     542    // Do Enclosures 
     543    while ($enclosure = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) { 
     544        $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';"); 
     545        do_enclose($enclosure->post_content, $enclosure->ID); 
     546    } 
     547 
     548    // Do Trackbacks 
     549    $trackbacks = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'"); 
     550    if ( is_array($trackbacks) ) { 
     551        foreach ( $trackbacks as $trackback ) { 
     552            do_trackbacks($trackback->ID); 
     553        } 
     554    } 
     555 
     556    //Do Update Services/Generic Pings 
     557    generic_ping(); 
     558
     559 
     560function do_trackbacks($post_id) { 
     561    global $wpdb; 
     562 
     563    $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = $post_id"); 
     564    $to_ping = get_to_ping($post_id); 
     565    $pinged  = get_pung($post_id); 
     566    if ( empty($to_ping) ) { 
     567        $wpdb->query("UPDATE $wpdb->posts SET to_ping = '' WHERE ID = '$post_id'"); 
     568        return; 
     569    } 
     570 
     571    if (empty($post->post_excerpt)) 
     572        $excerpt = apply_filters('the_content', $post->post_content); 
     573    else 
     574        $excerpt = apply_filters('the_excerpt', $post->post_excerpt); 
     575    $excerpt = str_replace(']]>', ']]&gt;', $excerpt); 
     576    $excerpt = strip_tags($excerpt); 
     577    if ( function_exists('mb_strcut') ) // For international trackbacks 
     578        $excerpt = mb_strcut($excerpt, 0, 252, get_settings('blog_charset')) . '...'; 
     579    else 
     580        $excerpt = substr($excerpt, 0, 252) . '...'; 
     581 
     582    $post_title = apply_filters('the_title', $post->post_title); 
     583    $post_title = strip_tags($post_title); 
     584 
     585    if ($to_ping) : foreach ($to_ping as $tb_ping) : 
     586        $tb_ping = trim($tb_ping); 
     587        if ( !in_array($tb_ping, $pinged) ) { 
     588            trackback($tb_ping, $post_title, $excerpt, $post_id); 
     589            $pinged[] = $tb_ping; 
     590        } else { 
     591            $wpdb->query("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_ping', '')) WHERE ID = '$post_id'"); 
     592        } 
     593    endforeach; endif; 
     594
     595 
     596function generic_ping($post_id = 0) { 
     597    $services = get_settings('ping_sites'); 
     598    $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines 
     599    $services = trim($services); 
     600    if ( '' != $services ) { 
     601        $services = explode("\n", $services); 
     602        foreach ($services as $service) { 
     603            weblog_ping($service); 
     604        } 
     605    } 
     606 
     607    return $post_id; 
     608
     609 
     610function pingback($content, $post_ID) { 
     611    global $wp_version, $wpdb; 
     612    include_once (ABSPATH . WPINC . '/class-IXR.php'); 
     613 
     614    // original code by Mort (http://mort.mine.nu:8080) 
     615    $log = debug_fopen(ABSPATH . '/pingback.log', 'a'); 
     616    $post_links = array(); 
     617    debug_fwrite($log, 'BEGIN '.date('YmdHis', time())."\n"); 
     618 
     619    $pung = get_pung($post_ID); 
     620 
     621    // Variables 
     622    $ltrs = '\w'; 
     623    $gunk = '/#~:.?+=&%@!\-'; 
     624    $punc = '.:?\-'; 
     625    $any = $ltrs . $gunk . $punc; 
     626 
     627    // Step 1 
     628    // Parsing the post, external links (if any) are stored in the $post_links array 
     629    // This regexp comes straight from phpfreaks.com 
     630    // http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php 
     631    preg_match_all("{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp); 
     632 
     633    // Debug 
     634    debug_fwrite($log, 'Post contents:'); 
     635    debug_fwrite($log, $content."\n"); 
     636 
     637    // Step 2. 
     638    // Walking thru the links array 
     639    // first we get rid of links pointing to sites, not to specific files 
     640    // Example: 
     641    // http://dummy-weblog.org 
     642    // http://dummy-weblog.org/ 
     643    // http://dummy-weblog.org/post.php 
     644    // We don't wanna ping first and second types, even if they have a valid <link/> 
     645 
     646    foreach($post_links_temp[0] as $link_test) : 
     647        if ( !in_array($link_test, $pung) && (url_to_postid($link_test) != $post_ID) // If we haven't pung it already and it isn't a link to itself 
     648                && !is_local_attachment($link_test) ) : // Also, let's never ping local attachments. 
     649            $test = parse_url($link_test); 
     650            if (isset($test['query'])) 
     651                $post_links[] = $link_test; 
     652            elseif(($test['path'] != '/') && ($test['path'] != '')) 
     653                $post_links[] = $link_test; 
     654        endif; 
     655    endforeach; 
     656 
     657    do_action('pre_ping',  array(&$post_links, &$pung)); 
     658 
     659    foreach ($post_links as $pagelinkedto){ 
     660        debug_fwrite($log, "Processing -- $pagelinkedto\n"); 
     661        $pingback_server_url = discover_pingback_server_uri($pagelinkedto, 2048); 
     662 
     663        if ($pingback_server_url) { 
     664            @ set_time_limit( 60 );  
     665             // Now, the RPC call 
     666            debug_fwrite($log, "Page Linked To: $pagelinkedto \n"); 
     667            debug_fwrite($log, 'Page Linked From: '); 
     668            $pagelinkedfrom = get_permalink($post_ID); 
     669            debug_fwrite($log, $pagelinkedfrom."\n"); 
     670 
     671            // using a timeout of 3 seconds should be enough to cover slow servers 
     672            $client = new IXR_Client($pingback_server_url); 
     673            $client->timeout = 3; 
     674            $client->useragent .= ' -- WordPress/' . $wp_version; 
     675 
     676            // when set to true, this outputs debug messages by itself 
     677            $client->debug = false; 
     678 
     679            if ( $client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto ) ) 
     680                add_ping( $post_ID, $pagelinkedto ); 
     681            else 
     682                debug_fwrite($log, "Error.\n Fault code: ".$client->getErrorCode()." : ".$client->getErrorMessage()."\n"); 
     683        } 
     684    } 
     685 
     686    debug_fwrite($log, "\nEND: ".time()."\n****************************\n"); 
     687    debug_fclose($log); 
     688
     689 
     690function privacy_ping_filter( $sites ) { 
     691    if ( '0' != get_option('blog_public') ) 
     692        return $sites; 
     693    else 
     694        return ''; 
     695
     696 
     697// Send a Trackback 
     698function trackback($trackback_url, $title, $excerpt, $ID) { 
     699    global $wpdb, $wp_version; 
     700 
     701    if ( empty($trackback_url) ) 
     702        return; 
     703 
     704    $title = urlencode($title); 
     705    $excerpt = urlencode($excerpt); 
     706    $blog_name = urlencode(get_settings('blogname')); 
     707    $tb_url = $trackback_url; 
     708    $url = urlencode(get_permalink($ID)); 
     709    $query_string = "title=$title&url=$url&blog_name=$blog_name&excerpt=$excerpt"; 
     710    $trackback_url = parse_url($trackback_url); 
     711    $http_request = 'POST ' . $trackback_url['path'] . ($trackback_url['query'] ? '?'.$trackback_url['query'] : '') . " HTTP/1.0\r\n"; 
     712    $http_request .= 'Host: '.$trackback_url['host']."\r\n"; 
     713    $http_request .= 'Content-Type: application/x-www-form-urlencoded; charset='.get_settings('blog_charset')."\r\n"; 
     714    $http_request .= 'Content-Length: '.strlen($query_string)."\r\n"; 
     715    $http_request .= "User-Agent: WordPress/" . $wp_version; 
     716    $http_request .= "\r\n\r\n"; 
     717    $http_request .= $query_string; 
     718    if ( '' == $trackback_url['port'] ) 
     719        $trackback_url['port'] = 80; 
     720    $fs = @fsockopen($trackback_url['host'], $trackback_url['port'], $errno, $errstr, 4); 
     721    @fputs($fs, $http_request); 
     722/* 
     723    $debug_file = 'trackback.log'; 
     724    $fp = fopen($debug_file, 'a'); 
     725    fwrite($fp, "\n*****\nRequest:\n\n$http_request\n\nResponse:\n\n"); 
     726    while(!@feof($fs)) { 
     727        fwrite($fp, @fgets($fs, 4096)); 
     728    } 
     729    fwrite($fp, "\n\n"); 
     730    fclose($fp); 
     731*/ 
     732    @fclose($fs); 
     733 
     734    $tb_url = addslashes( $tb_url ); 
     735    $wpdb->query("UPDATE $wpdb->posts SET pinged = CONCAT(pinged, '\n', '$tb_url') WHERE ID = '$ID'"); 
     736    return $wpdb->query("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_url', '')) WHERE ID = '$ID'"); 
     737
     738 
     739function weblog_ping($server = '', $path = '') { 
     740    global $wp_version; 
     741    include_once (ABSPATH . WPINC . '/class-IXR.php'); 
     742 
     743    // using a timeout of 3 seconds should be enough to cover slow servers 
     744    $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); 
     745    $client->timeout = 3; 
     746    $client->useragent .= ' -- WordPress/'.$wp_version; 
     747 
     748    // when set to true, this outputs debug messages by itself 
     749    $client->debug = false; 
     750    $home = trailingslashit( get_option('home') ); 
     751    if ( !$client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping 
     752        $client->query('weblogUpdates.ping', get_settings('blogname'), $home); 
    620753} 
    621754 
  • trunk/wp-includes/functions.php

    r3897 r3900  
    320320} 
    321321 
    322 function weblog_ping($server = '', $path = '') { 
    323     global $wp_version; 
    324     include_once (ABSPATH . WPINC . '/class-IXR.php'); 
    325  
    326     // using a timeout of 3 seconds should be enough to cover slow servers 
    327     $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); 
    328     $client->timeout = 3; 
    329     $client->useragent .= ' -- WordPress/'.$wp_version; 
    330  
    331     // when set to true, this outputs debug messages by itself 
    332     $client->debug = false; 
    333     $home = trailingslashit( get_option('home') ); 
    334     if ( !$client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping 
    335         $client->query('weblogUpdates.ping', get_settings('blogname'), $home); 
    336 } 
    337  
    338 function generic_ping($post_id = 0) { 
    339     $services = get_settings('ping_sites'); 
    340     $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines 
    341     $services = trim($services); 
    342     if ( '' != $services ) { 
    343         $services = explode("\n", $services); 
    344         foreach ($services as $service) { 
    345             weblog_ping($service); 
    346         } 
    347     } 
    348  
    349     return $post_id; 
    350 } 
    351  
    352 // Send a Trackback 
    353 function trackback($trackback_url, $title, $excerpt, $ID) { 
    354     global $wpdb, $wp_version; 
    355  
    356     if ( empty($trackback_url) ) 
    357         return; 
    358  
    359     $title = urlencode($title); 
    360     $excerpt = urlencode($excerpt); 
    361     $blog_name = urlencode(get_settings('blogname')); 
    362     $tb_url = $trackback_url; 
    363     $url = urlencode(get_permalink($ID)); 
    364     $query_string = "title=$title&url=$url&blog_name=$blog_name&excerpt=$excerpt"; 
    365     $trackback_url = parse_url($trackback_url); 
    366     $http_request = 'POST ' . $trackback_url['path'] . ($trackback_url['query'] ? '?'.$trackback_url['query'] : '') . " HTTP/1.0\r\n"; 
    367     $http_request .= 'Host: '.$trackback_url['host']."\r\n"; 
    368     $http_request .= 'Content-Type: application/x-www-form-urlencoded; charset='.get_settings('blog_charset')."\r\n"; 
    369     $http_request .= 'Content-Length: '.strlen($query_string)."\r\n"; 
    370     $http_request .= "User-Agent: WordPress/" . $wp_version; 
    371     $http_request .= "\r\n\r\n"; 
    372     $http_request .= $query_string; 
    373     if ( '' == $trackback_url['port'] ) 
    374         $trackback_url['port'] = 80; 
    375     $fs = @fsockopen($trackback_url['host'], $trackback_url['port'], $errno, $errstr, 4); 
    376     @fputs($fs, $http_request); 
    377 /* 
    378     $debug_file = 'trackback.log'; 
    379     $fp = fopen($debug_file, 'a'); 
    380     fwrite($fp, "\n*****\nRequest:\n\n$http_request\n\nResponse:\n\n"); 
    381     while(!@feof($fs)) { 
    382         fwrite($fp, @fgets($fs, 4096)); 
    383     } 
    384     fwrite($fp, "\n\n"); 
    385     fclose($fp); 
    386 */ 
    387     @fclose($fs); 
    388  
    389     $tb_url = addslashes( $tb_url ); 
    390     $wpdb->query("UPDATE $wpdb->posts SET pinged = CONCAT(pinged, '\n', '$tb_url') WHERE ID = '$ID'"); 
    391     return $wpdb->query("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_url', '')) WHERE ID = '$ID'"); 
    392 } 
    393  
    394322function make_url_footnote($content) { 
    395323    preg_match_all('/<a(.+?)href=\"(.+?)\"(.*?)>(.+?)<\/a>/', $content, $matches); 
     
    819747    global $wpdb; 
    820748    return $wpdb->num_queries; 
    821 } 
    822  
    823 function privacy_ping_filter( $sites ) { 
    824     if ( '0' != get_option('blog_public') ) 
    825         return $sites; 
    826     else 
    827         return ''; 
    828749} 
    829750 
     
    1069990} 
    1070991 
    1071 function do_trackbacks($post_id) { 
    1072     global $wpdb; 
    1073  
    1074     $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = $post_id"); 
    1075     $to_ping = get_to_ping($post_id); 
    1076     $pinged  = get_pung($post_id); 
    1077     if ( empty($to_ping) ) { 
    1078         $wpdb->query("UPDATE $wpdb->posts SET to_ping = '' WHERE ID = '$post_id'"); 
    1079         return; 
    1080     } 
    1081  
    1082     if (empty($post->post_excerpt)) 
    1083         $excerpt = apply_filters('the_content', $post->post_content); 
    1084     else 
    1085         $excerpt = apply_filters('the_excerpt', $post->post_excerpt); 
    1086     $excerpt = str_replace(']]>', ']]&gt;', $excerpt); 
    1087     $excerpt = strip_tags($excerpt); 
    1088     if ( function_exists('mb_strcut') ) // For international trackbacks 
    1089         $excerpt = mb_strcut($excerpt, 0, 252, get_settings('blog_charset')) . '...'; 
    1090     else 
    1091         $excerpt = substr($excerpt, 0, 252) . '...'; 
    1092  
    1093     $post_title = apply_filters('the_title', $post->post_title); 
    1094     $post_title = strip_tags($post_title); 
    1095  
    1096     if ($to_ping) : foreach ($to_ping as $tb_ping) : 
    1097         $tb_ping = trim($tb_ping); 
    1098         if ( !in_array($tb_ping, $pinged) ) { 
    1099             trackback($tb_ping, $post_title, $excerpt, $post_id); 
    1100             $pinged[] = $tb_ping; 
    1101         } else { 
    1102             $wpdb->query("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, '$tb_ping', '')) WHERE ID = '$post_id'"); 
    1103         } 
    1104     endforeach; endif; 
    1105 } 
    1106  
    1107 function do_all_pings() { 
    1108     global $wpdb; 
    1109  
    1110     // Do pingbacks 
    1111     while ($ping = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) { 
    1112         $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';"); 
    1113         pingback($ping->post_content, $ping->ID); 
    1114     } 
    1115      
    1116     // Do Enclosures 
    1117     while ($enclosure = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) { 
    1118         $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';"); 
    1119         do_enclose($enclosure->post_content, $enclosure->ID); 
    1120     } 
    1121  
    1122     // Do Trackbacks 
    1123     $trackbacks = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'"); 
    1124     if ( is_array($trackbacks) ) { 
    1125         foreach ( $trackbacks as $trackback ) { 
    1126             do_trackbacks($trackback->ID); 
    1127         } 
    1128     } 
    1129  
    1130     //Do Update Services/Generic Pings 
    1131     generic_ping(); 
    1132 } 
    1133  
    1134992function wp_proxy_check($ipnum) { 
    1135993    if ( get_option('open_proxy_check') && isset($ipnum) ) { 
  • trunk/wp-includes/post-template.php

    r3852 r3900  
    3535    if ( !empty($post->post_password) ) 
    3636        $title = sprintf(__('Protected: %s'), $title); 
     37    else if ( 'private' == $post->post_status ) 
     38        $title = sprintf(__('Private: %s'), $title); 
    3739 
    3840    return $title; 
  • trunk/wp-includes/post.php

    r3854 r3900  
    11181118// Attachment functions 
    11191119// 
     1120 
     1121function is_local_attachment($url) { 
     1122    if ( !strstr($url, get_bloginfo('home') ) ) 
     1123        return false; 
     1124    if ( strstr($url, get_bloginfo('home') . '/?attachment_id=') ) 
     1125        return true; 
     1126    if ( $id = url_to_postid($url) ) { 
     1127        $post = & get_post($id); 
     1128        if ( 'attachment' == $post->post_type ) 
     1129            return true; 
     1130    } 
     1131    return false; 
     1132} 
    11201133 
    11211134function wp_insert_attachment($object, $file = false, $post_parent = 0) { 
  • trunk/wp-includes/query.php

    r3896 r3900  
    851851            $where .= " AND (post_type = '$post_type' AND (post_status = 'publish'"; 
    852852 
    853             if ( is_admin() ) { 
     853            if ( is_admin() ) 
    854854                $where .= " OR post_status = 'future' OR post_status = 'draft'"; 
    855855     
    856                 if ( is_user_logged_in() ) { 
    857                     if ( 'post' == $post_type ) 
    858                         $cap = 'edit_private_posts'; 
    859                     else 
    860                         $cap = 'edit_private_pages'; 
    861  
    862                     if ( current_user_can($cap) ) 
    863                         $where .= "OR post_status = 'private'"; 
    864                     else 
    865                     $where .= " OR post_author = $user_ID AND post_status = 'private'"; 
    866                 } 
     856            if ( is_user_logged_in() ) { 
     857                if ( 'post' == $post_type ) 
     858                    $cap = 'edit_private_posts'; 
     859                else 
     860                    $cap = 'edit_private_pages'; 
     861 
     862                if ( current_user_can($cap) ) 
     863                    $where .= " OR post_status = 'private'"; 
     864                else 
     865                $where .= " OR post_author = $user_ID AND post_status = 'private'"; 
    867866            } 
    868867