Mini Shell

Direktori : /hosting/soch/html/
Upload File :
Current File : /hosting/soch/html/wp-trackback.php

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

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

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

/**
 * Response to a trackback.
 *
 * Responds with an error or success XML message.
 *
 * @since 0.71
 *
 * @param int|bool $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. Default empty string.
 */
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>';
	}
}

if ( ! isset( $_GET['tb_id'] ) || ! $_GET['tb_id'] ) {
	$post_id = explode( '/', $_SERVER['REQUEST_URI'] );
	$post_id = (int) $post_id[ count( $post_id ) - 1 ];
}

$trackback_url = isset( $_POST['url'] ) ? sanitize_url( $_POST['url'] ) : '';
$charset       = isset( $_POST['charset'] ) ? sanitize_text_field( $_POST['charset'] ) : '';

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

if ( $charset ) {
	$charset = str_replace( array( ',', ' ' ), '', strtoupper( trim( $charset ) ) );

	// Validate the specified "sender" charset is available on the receiving site.
	if ( function_exists( 'mb_list_encodings' ) && ! in_array( $charset, mb_list_encodings(), true ) ) {
		$charset = '';
	}
}

if ( ! $charset ) {
	$charset = 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS';
}

// No valid uses for UTF-7.
if ( str_contains( $charset, 'UTF-7' ) ) {
	die;
}

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

// Escape values to use in the trackback.
$title     = wp_slash( $title );
$excerpt   = wp_slash( $excerpt );
$blog_name = wp_slash( $blog_name );

if ( is_single() || is_page() ) {
	$post_id = $posts[0]->ID;
}

if ( ! isset( $post_id ) || ! (int) $post_id ) {
	trackback_response( 1, __( 'I really need an ID for this to work.' ) );
}

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

if ( ! empty( $trackback_url ) && ! empty( $title ) ) {
	/**
	 * Fires before the trackback is added to a post.
	 *
	 * @since 4.7.0
	 *
	 * @param int    $post_id       Post ID related to the trackback.
	 * @param string $trackback_url Trackback URL.
	 * @param string $charset       Character set.
	 * @param string $title         Trackback title.
	 * @param string $excerpt       Trackback excerpt.
	 * @param string $blog_name     Site name.
	 */
	do_action( 'pre_trackback_post', $post_id, $trackback_url, $charset, $title, $excerpt, $blog_name );

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

	if ( ! pings_open( $post_id ) ) {
		trackback_response( 1, __( 'Sorry, trackbacks are closed for this item.' ) );
	}

	$title   = wp_html_excerpt( $title, 250, '&#8230;' );
	$excerpt = wp_html_excerpt( $excerpt, 252, '&#8230;' );

	$comment_post_id      = (int) $post_id;
	$comment_author       = $blog_name;
	$comment_author_email = '';
	$comment_author_url   = $trackback_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_response( 1, __( 'There is already a ping from that URL for this post.' ) );
	}

	$commentdata = array(
		'comment_post_ID' => $comment_post_id,
	);

	$commentdata += compact(
		'comment_author',
		'comment_author_email',
		'comment_author_url',
		'comment_content',
		'comment_type'
	);

	$result = wp_new_comment( $commentdata );

	if ( is_wp_error( $result ) ) {
		trackback_response( 1, $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( 0 );
}

Warning: session_start(): Session cannot be started after headers have already been sent in /hosting/soch/html/wp-content/plugins/kboard/index.php on line 78
지속가능경영학회
지속가능한 가치, 함께 창조하는 지식 공동체

논문 투고 안내

논문 투고 알아보기

공공정책연구용역/컨설팅

공공정책연구용역/컨설팅

논문 바로 투고

논문 투고

ESG포럼/행사

ESG포럼과 행사

사단법인
지속가능경영학회

사단법인 지속가능경영학회

학술연구, 교육, 정책 제안, 정보 공유를 통해 기업과 사회의 지속가능경영 실천을 촉진하고 미래 가치를 함께 창출하는 지식 공동체입니다.

서울 ESG 경영 포럼

주요 사업

연구 및 개발

지속 가능성을 높이기 위한 다양한 경영 전략과 혁신적인 아이디어를 탐구하고 개발합니다. 이를 통해 기업들이 지속 가능한 성장을 이룰 수 있도록 지원합니다.

ESG포럼

환경(Environment), 사회(Social), 지배구조(Governance)와 관련된 다양한 주제를 다루는 포럼을 개최합니다. 이 포럼은 전문가, 기업인, 학자들이 모여 지속 가능 경영에 대해 논의하고 최신 동향과 사례를 공유하는 장이 됩니다.

학술지 발간

최신 지속 가능 경영 이슈와 연구 성과를 담은 학술지를 정기적으로 발간하여 학계와 산업계에 중요한 정보를 제공합니다. 이를 통해 지속 가능 경영에 대한 이해와 관심을 높이고 지식을 확산시킵니다.

ESG 평가

기업의 ESG 경영 수준을 평가하고, 이를 통해 기업이 지속 가능성을 높이기 위한 개선 방향을 제시합니다. 이러한 평가는 기업의 사회적 책임과 지속 가능한 성장을 촉진하는 중요한 도구로 활용됩니다.

주요 사업

연구 및 개발

지속 가능성을 높이기 위한 다양한 경영 전략과 혁신적인 아이디어를 탐구하고 개발합니다. 이를 통해 기업들이 지속 가능한 성장을 이룰 수 있도록 지원합니다.

학술지 발간

최신 지속 가능 경영 이슈와 연구 성과를 담은 학술지를 정기적으로 발간하여 학계와 산업계에 중요한 정보를 제공합니다. 이를 통해 지속 가능 경영에 대한 이해와 관심을 높이고 지식을 확산시킵니다.

ESG포럼

환경(Environment), 사회(Social), 지배구조(Governance)와 관련된 다양한 주제를 다루는 포럼을 개최합니다. 이 포럼은 전문가, 기업인, 학자들이 모여 지속 가능 경영에 대해 논의하고 최신 동향과 사례를 공유하는 장이 됩니다.

ESG 평가

기업의 ESG 경영 수준을 평가하고, 이를 통해 기업이 지속 가능성을 높이기 위한 개선 방향을 제시합니다. 이러한 평가는 기업의 사회적 책임과 지속 가능한 성장을 촉진하는 중요한 도구로 활용됩니다.