Changeset 38852
- Timestamp:
- 10/21/2016 05:59:34 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/comment.php
r38783 r38852 2406 2406 * 2407 2407 * @since 1.5.0 2408 * @since 4.7.0 $post_id can be a WP_Post object. 2408 2409 * 2409 2410 * @global wpdb $wpdb WordPress database abstraction object. 2410 2411 * 2411 * @param int $post_id PostID to do trackbacks on.2412 */ 2413 function do_trackbacks( $post_id) {2412 * @param int|WP_Post $post_id Post object or ID to do trackbacks on. 2413 */ 2414 function do_trackbacks( $post_id ) { 2414 2415 global $wpdb; 2415 2416 2416 $post = get_post( $post_id ); 2417 $to_ping = get_to_ping($post_id); 2418 $pinged = get_pung($post_id); 2419 if ( empty($to_ping) ) { 2420 $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id) ); 2417 if ( ! $post ) { 2418 return false; 2419 } 2420 2421 $to_ping = get_to_ping( $post ); 2422 $pinged = get_pung( $post ); 2423 if ( empty( $to_ping ) ) { 2424 $wpdb->update($wpdb->posts, array( 'to_ping' => '' ), array( 'ID' => $post->ID ) ); 2421 2425 return; 2422 2426 } … … 2441 2445 $tb_ping = trim($tb_ping); 2442 2446 if ( !in_array($tb_ping, $pinged) ) { 2443 trackback( $tb_ping, $post_title, $excerpt, $post_id);2447 trackback( $tb_ping, $post_title, $excerpt, $post->ID ); 2444 2448 $pinged[] = $tb_ping; 2445 2449 } else { 2446 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id) ); 2450 $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, 2451 '')) WHERE ID = %d", $tb_ping, $post->ID ) ); 2447 2452 } 2448 2453 } … … 2475 2480 * 2476 2481 * @since 0.71 2477 * 2478 * @param string $content Post content to check for links. 2479 * @param int $post_ID Post ID. 2480 */ 2481 function pingback($content, $post_ID) { 2482 * @since 4.7.0 $post_id can be a WP_Post object. 2483 * 2484 * @param string $content Post content to check for links. If empty will retrieve from post. 2485 * @param int|WP_Post $post_id Post Object or ID. 2486 */ 2487 function pingback( $content, $post_id ) { 2482 2488 include_once( ABSPATH . WPINC . '/class-IXR.php' ); 2483 2489 include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' ); … … 2486 2492 $post_links = array(); 2487 2493 2488 $pung = get_pung($post_ID); 2494 $post = get_post( $post_id ); 2495 if ( ! $post ) { 2496 return; 2497 } 2498 2499 $pung = get_pung( $post ); 2500 2501 if ( empty( $content ) ) { 2502 $content = $post->post_content; 2503 } 2489 2504 2490 2505 // Step 1 … … 2502 2517 2503 2518 foreach ( (array) $post_links_temp as $link_test ) : 2504 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 itself2519 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 2505 2520 && !is_local_attachment($link_test) ) : // Also, let's never ping local attachments. 2506 2521 if ( $test = @parse_url($link_test) ) { … … 2523 2538 * @param int $post_ID The post ID. 2524 2539 */ 2525 do_action_ref_array( 'pre_ping', array( &$post_links, &$pung, $post _ID ) );2540 do_action_ref_array( 'pre_ping', array( &$post_links, &$pung, $post->ID ) ); 2526 2541 2527 2542 foreach ( (array) $post_links as $pagelinkedto ) { … … 2531 2546 @ set_time_limit( 60 ); 2532 2547 // Now, the RPC call 2533 $pagelinkedfrom = get_permalink( $post_ID);2548 $pagelinkedfrom = get_permalink( $post ); 2534 2549 2535 2550 // using a timeout of 3 seconds should be enough to cover slow servers … … 2553 2568 2554 2569 if ( $client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto) || ( isset($client->error->code) && 48 == $client->error->code ) ) // Already registered 2555 add_ping( $post _ID, $pagelinkedto );2570 add_ping( $post, $pagelinkedto ); 2556 2571 } 2557 2572 } -
trunk/src/wp-includes/post.php
r38849 r38852 3992 3992 * 3993 3993 * @since 1.5.0 3994 * @since 4.7.0 $post_id can be a WP_Post object. 3995 * @since 4.7.0 $uri can be an array of URIs. 3994 3996 * 3995 3997 * @global wpdb $wpdb WordPress database abstraction object. 3996 3998 * 3997 * @param int $post_id PostID.3998 * @param string $uri Ping URI.3999 * @param int|WP_Post $post_id Post object or ID. 4000 * @param string|array $uri Ping URI or array of URIs. 3999 4001 * @return int|false How many rows were updated. 4000 4002 */ 4001 4003 function add_ping( $post_id, $uri ) { 4002 4004 global $wpdb; 4003 $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id )); 4004 $pung = trim($pung); 4005 $pung = preg_split('/\s/', $pung); 4006 $pung[] = $uri; 4005 4006 $post = get_post( $post_id ); 4007 if ( ! $post ) { 4008 return false; 4009 } 4010 4011 $pung = trim( $post->pinged ); 4012 $pung = preg_split( '/\s/', $pung ); 4013 4014 if ( is_array( $uri ) ) { 4015 $pung = array_merge( $pung, $uri ); 4016 } 4017 else { 4018 $pung[] = $uri; 4019 } 4007 4020 $new = implode("\n", $pung); 4008 4021 … … 4016 4029 $new = apply_filters( 'add_ping', $new ); 4017 4030 4018 // expected_slashed ($new).4019 $new = wp_unslash($new);4020 return $ wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post_id ) );4031 $return = $wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post->ID ) ); 4032 clean_post_cache( $post->ID ); 4033 return $return; 4021 4034 } 4022 4035 … … 4060 4073 * @since 1.5.0 4061 4074 * 4062 * @ global wpdb $wpdb WordPress database abstractionobject.4063 * 4064 * @param int $post_id Post ID.4075 * @since 4.7.0 $post_id can be a WP_Post object. 4076 * 4077 * @param int|WP_Post $post_id Post ID or object. 4065 4078 * @return array 4066 4079 */ 4067 4080 function get_pung( $post_id ) { 4068 global $wpdb; 4069 $pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id )); 4070 $pung = trim($pung); 4071 $pung = preg_split('/\s/', $pung); 4081 $post = get_post( $post_id ); 4082 if ( ! $post ) { 4083 return false; 4084 } 4085 4086 $pung = trim( $post->pinged ); 4087 $pung = preg_split( '/\s/', $pung ); 4072 4088 4073 4089 /** … … 4085 4101 * 4086 4102 * @since 1.5.0 4087 * 4088 * @global wpdb $wpdb WordPress database abstraction object. 4089 * 4090 * @param int $post_id Post ID 4103 * @since 4.7.0 $post_id can be a WP_Post object. 4104 * 4105 * @param int|WP_Post $post_id Post Object or ID 4091 4106 * @return array 4092 4107 */ 4093 4108 function get_to_ping( $post_id ) { 4094 global $wpdb; 4095 $to_ping = $wpdb->get_var( $wpdb->prepare( "SELECT to_ping FROM $wpdb->posts WHERE ID = %d", $post_id )); 4096 $to_ping = sanitize_trackback_urls( $to_ping ); 4109 $post = get_post( $post_id ); 4110 4111 if ( ! $post ) { 4112 return false; 4113 } 4114 4115 $to_ping = sanitize_trackback_urls( $post->to_ping ); 4097 4116 $to_ping = preg_split('/\s/', $to_ping, -1, PREG_SPLIT_NO_EMPTY); 4098 4117
Note: See TracChangeset
for help on using the changeset viewer.