C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\mampress\wp-trackback.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
require_once( dirname(__FILE__) . '/wp-config.php' );

if ( empty(
$doing_trackback) ) {
    
$doing_trackback true;
    
$tb true;
    require_once(
'wp-blog-header.php');
}

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 ( !
$_GET['tb_id'] ) {
    
$tb_id explode('/'$_SERVER['REQUEST_URI']);
    
$tb_id intval$tb_idcount($tb_id) - ] );
}

$tb_url    $_POST['url'];
$title     $_POST['title'];
$excerpt   $_POST['excerpt'];
$blog_name $_POST['blog_name'];
$charset   $_POST['charset'];

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

if ( 
function_exists('mb_convert_encoding') ) { // For international trackbacks
    
$title     mb_convert_encoding($titleget_settings('blog_charset'), $charset);
    
$excerpt   mb_convert_encoding($excerptget_settings('blog_charset'), $charset);
    
$blog_name mb_convert_encoding($blog_nameget_settings('blog_charset'), $charset);
}

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

if ( !
intval$tb_id ) )
    
trackback_response(1'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...
    
header('Location: ' get_permalink($tb_id));
    exit;
}

if ( !empty(
$tb_url) && !empty($title) && !empty($tb_url) ) {
    
header('Content-Type: text/xml; charset=' get_option('blog_charset') );

    
$pingstatus $wpdb->get_var("SELECT ping_status FROM $wpdb->posts WHERE ID = $tb_id");

    if ( 
'open' != $pingstatus )
        
trackback_response(1'Sorry, trackbacks are closed for this item.');

    
$title =  wp_specialcharsstrip_tags$title ) );
    
$title = (strlen($title) > 250) ? substr($title0250) . '...' $title;
    
$excerpt strip_tags($excerpt);
    
$excerpt = (strlen($excerpt) > 255) ? substr($excerpt0252) . '...' $excerpt;

    
$comment_post_ID $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("SELECT * FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND comment_author_url = '$comment_author_url'");
    if ( 
$dupe )
        
trackback_response(1'We already have a ping from that URI for this post.');

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

    
wp_new_comment($commentdata);

    
do_action('trackback_post'$wpdb->insert_id);
    
trackback_response(0);
}
?>