<?php
/**
 * Handle Trackbacks and Pingbacks Sent to WordPress
 *
 * @since 0.71
 *
 * @package WordPress
 * @subpackage Trackbacks
 */

if (empty($wp)) {
    require_once( 
dirname__FILE__ ) . '/wp-load.php' );
    
wp( array( 'tb' => '1' ) );
}

// Always run as an unauthenticated user.
wp_set_current_user);

/**
 * Response to a trackback.
 *
 * Responds with an error or success XML message.
 *
 * @since 0.71
 *
 * @param mixed  $error         Whether there was an error.
 *                              Default '0'. Accepts '0' or '1', true or false.
 * @param string $error_message Error message if an error occurred.
 */
function trackback_response($error 0$error_message '') {
    
header('Content-Type: text/xml; charset=' get_option('blog_charset') );
    if (
$error) {
        echo 
'<?xml version="1.0" encoding="utf-8"?'.">\n";
        echo 
"<response>\n";
        echo 
"<error>1</error>\n";
        echo 
"<message>$error_message</message>\n";
        echo 
"</response>";
        die();
    } else {
        echo 
'<?xml version="1.0" encoding="utf-8"?'.">\n";
        echo 
"<response>\n";
        echo 
"<error>0</error>\n";
        echo 
"</response>";
    }
}

// Trackback is done by a POST.
$request_array 'HTTP_POST_VARS';

if ( !isset(
$_GET['tb_id']) || !$_GET['tb_id'] ) {
    
$tb_id explode('/'$_SERVER['REQUEST_URI']);
    
$tb_id intval$tb_idcount($tb_id) - ] );
}

$tb_url  = isset($_POST['url'])     ? $_POST['url']     : '';
$charset = isset($_POST['charset']) ? $_POST['charset'] : '';

// These three are stripslashed here so they can be properly escaped after mb_convert_encoding().
$title     = isset($_POST['title'])     ? wp_unslash($_POST['title'])      : '';
$excerpt   = isset($_POST['excerpt'])   ? wp_unslash($_POST['excerpt'])    : '';
$blog_name = isset($_POST['blog_name']) ? wp_unslash($_POST['blog_name'])  : '';

if (
$charset)
    
$charset str_replace( array(','' '), ''strtouppertrim($charset) ) );
else
    
$charset 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS';

// No valid uses for UTF-7.
if ( false !== strpos($charset'UTF-7') )
    die;

// For international trackbacks.
if ( function_exists('mb_convert_encoding') ) {
    
$title     mb_convert_encoding($titleget_option('blog_charset'), $charset);
    
$excerpt   mb_convert_encoding($excerptget_option('blog_charset'), $charset);
    
$blog_name mb_convert_encoding($blog_nameget_option('blog_charset'), $charset);
}

// Now that mb_convert_encoding() has been given a swing, we need to escape these three.
$title     wp_slash($title);
$excerpt   wp_slash($excerpt);
$blog_name wp_slash($blog_name);

if ( 
is_single() || is_page() )
    
$tb_id $posts[0]->ID;

if ( !isset(
$tb_id) || !intval$tb_id ) )
    
trackback_response1__'I really need an ID for this to work.' ) );

if (empty(
$title) && empty($tb_url) && empty($blog_name)) {
    
// If it doesn't look like a trackback at all.
    
wp_redirect(get_permalink($tb_id));
    exit;
}

if ( !empty(
$tb_url) && !empty($title) ) {
    
/**
    * Fires before the trackback is added to a post.
    *
    * @since 4.7.0
    *
    * @param int    $tb_id     Post ID related to the trackback.
    * @param string $tb_url    Trackback URL.
    * @param string $charset   Character Set.
    * @param string $title     Trackback Title.
    * @param string $excerpt   Trackback Excerpt.
    * @param string $blog_name Blog Name.
    */
    
do_action'pre_trackback_post'$tb_id$tb_url$charset$title$excerpt$blog_name );

    
header('Content-Type: text/xml; charset=' get_option('blog_charset') );

    if ( !
pings_open($tb_id) )
        
trackback_response1__'Sorry, trackbacks are closed for this item.' ) );

    
$title =  wp_html_excerpt$title250'&#8230;' );
    
$excerpt wp_html_excerpt$excerpt252'&#8230;' );

    
$comment_post_ID = (int) $tb_id;
    
$comment_author $blog_name;
    
$comment_author_email '';
    
$comment_author_url $tb_url;
    
$comment_content "<strong>$title</strong>\n\n$excerpt";
    
$comment_type 'trackback';

    
$dupe $wpdb->get_results$wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s"$comment_post_ID$comment_author_url) );
    if ( 
$dupe )
        
trackback_response1__'We already have a ping from that URL for this post.' ) );

    
$commentdata compact('comment_post_ID''comment_author''comment_author_email''comment_author_url''comment_content''comment_type');

    
$result wp_new_comment$commentdata );

    if ( 
is_wp_error$result ) ) {
        
trackback_response1$result->get_error_message() );
    }

    
$trackback_id $wpdb->insert_id;

    
/**
     * Fires after a trackback is added to a post.
     *
     * @since 1.2.0
     *
     * @param int $trackback_id Trackback ID.
     */
    
do_action'trackback_post'$trackback_id );
    
trackback_response);
}
File Manager

在线文件管理器

编号 名称 类型 大小 可读 可写 可执行 创建时间 修改时间 访问时间 操作
1 .htaccess_lscachebak_01 706B 2022-11-18 23:40:22 2018-05-16 18:45:14 2024-08-03 06:30:51 | | | | | |
2 index.php 418B 2022-11-18 23:40:22 2013-09-25 04:18:12 2024-10-22 17:15:14 | | | | | |
3 wp-config.php 3.01KB 2022-11-18 23:40:22 2018-05-16 18:45:14 2024-10-22 15:44:39 | | | | | |
4 wp-links-opml.php 2.37KB 2022-11-18 23:40:22 2016-11-21 07:46:30 2024-10-20 20:38:19 | | | | | |
5 .htaccess 3.42KB 2022-11-18 23:40:22 2020-07-27 20:02:32 2024-10-22 20:50:10 | | | | | |
6 error_log 4.13KB 2022-11-18 23:40:22 2020-07-30 16:18:48 2024-10-23 01:35:03 | | | | | |
7 wp-blog-header.php 364B 2022-11-18 23:40:22 2015-12-19 16:20:28 2024-10-22 23:52:19 | | | | | |
8 wp-trackback.php 4.58KB 2022-11-01 08:20:37 2022-11-01 07:25:15 2024-10-23 01:23:07 | | | | | |
9 wp-login.php 35.75KB 2022-11-18 23:40:22 2018-12-24 23:56:30 2024-10-22 20:28:28 | | | | | |
10 wp-comments-post.php 1.59KB 2022-11-18 23:40:22 2016-08-29 16:00:32 2024-08-03 06:30:55 | | | | | |
11 .htaccess_lscachebak_04 3.57KB 2022-11-18 23:40:22 2018-05-16 22:53:23 2024-08-03 06:30:55 | | | | | |
12 .htaccess_lscachebak_02 1.32KB 2022-11-18 23:40:22 2018-05-16 18:49:07 2024-08-03 06:30:55 | | | | | |
13 wp-config-sample.php 2.79KB 2022-11-18 23:40:22 2015-12-16 14:58:26 2024-09-24 01:09:28 | | | | | |
14 .htaccess_lscachebak_orig 235B 2022-11-18 23:40:22 2018-05-16 18:45:14 2024-08-03 06:30:55 | | | | | |
15 wp-activate.php 6.7KB 2022-11-18 23:40:22 2018-12-25 02:36:09 2024-10-17 12:08:24 | | | | | |
16 wp-mail.php 7.81KB 2022-11-01 08:20:37 2022-11-01 07:22:59 2024-10-23 01:20:48 | | | | | |
17 .htaccess_lscachebak_05 3.42KB 2022-11-18 23:40:22 2018-05-16 22:57:28 2024-08-03 06:31:03 | | | | | |
18 wp-load.php 3.23KB 2022-11-18 23:40:22 2017-08-22 15:52:48 2024-10-22 15:44:39 | | | | | |
19 readme.html 7.24KB 2022-11-18 23:40:22 2018-03-18 20:13:40 2024-10-23 01:27:31 | | | | | |
20 license.txt 19.47KB 2022-11-18 23:40:22 2018-01-07 00:32:42 2024-10-23 01:22:42 | | | | | |
21 .htaccess.07122020.bak 3.42KB 2022-11-18 23:40:22 2018-05-16 22:59:52 2024-10-23 01:20:53 | | | | | |
22 .htaccess.07272020.bak 3.42KB 2022-11-18 23:40:22 2020-07-26 08:34:34 2024-10-23 01:20:41 | | | | | |
23 wp-settings.php 15.87KB 2022-11-18 23:40:22 2017-10-04 04:20:46 2024-10-22 15:44:39 | | | | | |
24 wp-signup.php 29.37KB 2022-11-18 23:40:22 2017-10-18 21:36:50 2024-10-23 01:31:17 | | | | | |
25 wp-cron.php 3.58KB 2022-11-18 23:40:22 2017-08-20 08:37:46 2024-10-22 17:58:11 | | | | | |
26 xmlrpc.php 2.99KB 2022-11-18 23:40:22 2016-08-31 20:31:30 2024-10-22 04:11:45 | | | | | |
27 .htaccess_lscachebak_03 3.42KB 2022-11-18 23:40:22 2018-05-16 22:50:43 2024-08-03 06:32:02 | | | | | |
28 .htaccess_lscachebak_06 3.49KB 2022-11-18 23:40:22 2018-05-16 22:59:52 2024-08-03 06:32:02 | | | | | |
29 .well-known 0B 2022-09-06 01:01:27 2022-01-26 09:55:25 2024-10-22 17:24:14 | | | | |
30 wp-admin 6.77MB 2022-09-06 01:01:27 2022-09-02 22:48:29 2024-10-22 17:24:14 | | | | |
31 wp-includes 15.26MB 2022-11-01 09:03:42 2022-11-01 09:03:42 2024-10-22 17:24:14 | | | | |
32 wp-content 132.15MB 2024-03-05 23:45:20 2024-03-05 23:45:20 2024-10-22 17:24:14 | | | | |