85d91a5a348d3c2b81cc93097ca7ba935/app/wp-content/languages/plugins/woocommerce-th-a65b4ddf263e8c410e9bcbfd6e6d72e4.json">woocommerce-th-a65b4ddf263e8c410e9bcbfd6e6d72e4.json d01d7cf85d first commit 4 年 前 woocommerce-th-a8b73b087444470c8f4396b7142908f6.json d01d7cf85d first commit 4 年 前 woocommerce-th-abb904b047b7be3be9d638e2c6144691.json d01d7cf85d first commit 4 年 前 woocommerce-th-ae1c49c8c0597593a9c36e106a04bd60.json d01d7cf85d first commit 4 年 前 woocommerce-th-aed4ce3ede1d44a8fecfe0edfbf8421c.json d01d7cf85d first commit 4 年 前 woocommerce-th-af52ab8cb2e7713cf3037751dd593965.json d01d7cf85d first commit 4 年 前 woocommerce-th-afbede9cda22f594a80ae8b178e0e98c.json d01d7cf85d first commit 4 年 前 woocommerce-th-afd1e270efc2e8283acfd50ccab18d2b.json d01d7cf85d first commit 4 年 前 woocommerce-th-b007baff76144318d6c33cd26f4bfdb9.json d01d7cf85d first commit 4 年 前 woocommerce-th-b0a592b6fe83588c5d1b8ed6850b6a74.json d01d7cf85d first commit 4 年 前 woocommerce-th-b155b7bf28890099b74a84417cbaafe9.json d01d7cf85d first commit 4 年 前 woocommerce-th-b1bb8fbd24d68a9c893faf1a6f7b493b.json d01d7cf85d first commit 4 年 前 woocommerce-th-b1bcbab1d6a7ca6b0433d67776f347f1.json d01d7cf85d first commit 4 年 前 woocommerce-th-b239ff15197a133498a4b025f002dee5.json d01d7cf85d first commit 4 年 前 woocommerce-th-b2e956ee35340f6e47f27f8a54309ac3.json d01d7cf85d first commit 4 年 前 woocommerce-th-b31f51fa0bb40ceb060aaa9f77ca1771.json d01d7cf85d first commit 4 年 前 woocommerce-th-b3f83696a2cb49f571043ce14a384a76.json d01d7cf85d first commit 4 年 前 woocommerce-th-b4bf1e55ca6145f38f1b2f104201da21.json d01d7cf85d first commit 4 年 前 woocommerce-th-b826befd7acca93e8e4c12b7cd2fc7f1.json d01d7cf85d first commit 4 年 前 woocommerce-th-b9bf1ca91d393a30e2461ef709f8fa10.json d01d7cf85d first commit 4 年 前 woocommerce-th-ba8d2fb7c85928310d4f3a907b7d9bdd.json d01d7cf85d first commit 4 年 前 woocommerce-th-bb0f027faa1257de4b730158475093de.json d01d7cf85d first commit 4 年 前 woocommerce-th-bb5c5935ec0d64e8880b1c7794470460.json d01d7cf85d first commit 4 年 前 woocommerce-th-bc1f4f7aec77a0a6dd229cc910f601f1.json d01d7cf85d first commit 4 年 前 woocommerce-th-bc9c3f9eda462d6d9968c1dca51e7c62.json d01d7cf85d first commit 4 年 前 woocommerce-th-bcb06ab6e8931a862dec9c07c66df45b.json d01d7cf85d first commit 4 年 前 woocommerce-th-c06829f63f73ae430c10ae700fb1eb6d.json d01d7cf85d first commit 4 年 前 woocommerce-th-c0faba84c7842505f8893c2c327a9f78.json d01d7cf85d first commit 4 年 前 woocommerce-th-c13acd243559529a685813d9871026a1.json d01d7cf85d first commit 4 年 前 woocommerce-th-c1bc39bcdee2da3c0b62bcd5372120f4.json d01d7cf85d first commit 4 年 前 woocommerce-th-c22945301f466e2d78d6e80404a22664.json d01d7cf85d first commit 4 年 前 woocommerce-th-c2435bc8dfd186b147aba658416d115e.json d01d7cf85d first commit 4 年 前 woocommerce-th-c257c024e3db4e010644d2c7be3c7090.json d01d7cf85d first commit 4 年 前 woocommerce-th-c2d9a34cf502bd5b5a80ca646a1420b3.json d01d7cf85d first commit 4 年 前 woocommerce-th-c5702ace609dd30ccabd4c999de43096.json d01d7cf85d first commit 4 年 前 woocommerce-th-c608fe5deda8db7667c8431ca6fd222a.json d01d7cf85d first commit 4 年 前 woocommerce-th-c6c5331d3afe1391f2ca83e991ccc086.json d01d7cf85d first commit 4 年 前 woocommerce-th-c70671124b0e00661f88fe1616dfc9f0.json d01d7cf85d first commit 4 年 前 woocommerce-th-c8cbe8ef95155db152b270d441fc8528.json d01d7cf85d first commit 4 年 前 woocommerce-th-c8ddf2164475a213274d06873bfbb73a.json d01d7cf85d first commit 4 年 前 woocommerce-th-c93706e596cbd46fb0d621f4fe3efb80.json d01d7cf85d first commit 4 年 前 woocommerce-th-ca3cd4394cb082bde7555ebd3bb5f143.json d01d7cf85d first commit 4 年 前 woocommerce-th-cb71ce5ddcc7c808172e80a0dc9833d5.json d01d7cf85d first commit 4 年 前 woocommerce-th-cc16013df9d4b0a0ba45297b90b06f20.json d01d7cf85d first commit 4 年 前 woocommerce-th-ccc500b0b722a0c96712f1634cbb7289.json d01d7cf85d first commit 4 年 前 woocommerce-th-cd9fc1d9fc46b55bb32d0fd471457690.json d01d7cf85d first commit 4 年 前 woocommerce-th-ce3f8f2f3e0f3c58f8aea5b7aa5cc6f4.json d01d7cf85d first commit 4 年 前 woocommerce-th-d05ee634b22d05f0055b724443f05a68.json d01d7cf85d first commit 4 年 前 woocommerce-th-d0d05e0dda872b433f260969b4d53b30.json d01d7cf85d first commit 4 年 前 woocommerce-th-d0fa7cd1cd624e53cc7b4fde655c20af.json d01d7cf85d first commit 4 年 前 woocommerce-th-d2b4400b6de0e69404e0f7f61d16bc55.json d01d7cf85d first commit 4 年 前 woocommerce-th-d3e57c518feb58ab8ea4f9d2d8e66160.json d01d7cf85d first commit 4 年 前 woocommerce-th-d4c505e96199e8c818fc6d24151d9c4a.json d01d7cf85d first commit 4 年 前 woocommerce-th-d5ea33028f13b50f40bbcce807e37fc0.json d01d7cf85d first commit 4 年 前 woocommerce-th-d6f4faa954a31ef3d5b74c2dfe13f141.json d01d7cf85d first commit 4 年 前 woocommerce-th-d7bbe90eb59636eb8a6f31c7979ab6f5.json d01d7cf85d first commit 4 年 前 woocommerce-th-d80020dab74131d7f0c108526c0fbebe.json d01d7cf85d first commit 4 年 前 woocommerce-th-da92a9b2d4c08762c60d7c4c569eb5db.json d01d7cf85d first commit 4 年 前 woocommerce-th-de12a4697822740a2fbaeb47c5062af1.json d01d7cf85d first commit 4 年 前 woocommerce-th-deed2aed3392b43c83c7cea296b154af.json d01d7cf85d first commit 4 年 前 woocommerce-th-df51042cba56a4e9fcac0e5db643906a.json d01d7cf85d first commit 4 年 前 woocommerce-th-dfb09f9953676bbc1de4eb2b9f232c6d.json d01d7cf85d first commit 4 年 前 woocommerce-th-dfbfe3d556f60ebbd62c2b5c8e0fa466.json d01d7cf85d first commit 4 年 前 woocommerce-th-e03ec35386c2705c11cebd6288b33cf8.json d01d7cf85d first commit 4 年 前 woocommerce-th-e0bde0ac58f55fc6b1426844e6697db3.json d01d7cf85d first commit 4 年 前 woocommerce-th-e0f9c7d89b1b130a9023c5c2fde2815e.json d01d7cf85d first commit 4 年 前 woocommerce-th-e41c58d5fb39f750efcbf65a2b55460b.json d01d7cf85d first commit 4 年 前 woocommerce-th-e44671e4528b0da3a0fd6feaf8abadca.json d01d7cf85d first commit 4 年 前 woocommerce-th-e4fbc8d7fc7a16bd8cf2e0522a199de0.json d01d7cf85d first commit 4 年 前 woocommerce-th-e690486b33a7bb1944a37f6e734d734f.json d01d7cf85d first commit 4 年 前 woocommerce-th-e80539b9960e930bf0dcd334d99eb128.json d01d7cf85d first commit 4 年 前 woocommerce-th-e885442559cb44e8b827f0e0ca0a14c9.json d01d7cf85d first commit 4 年 前 woocommerce-th-e88dc35c02f6fa832e90fac5a122323c.json d01d7cf85d first commit 4 年 前 woocommerce-th-ea6fb371f81c4d3584bbc795fa4ac09c.json d01d7cf85d first commit 4 年 前 woocommerce-th-ed9b16000a6d37c51bf23c61f4df878e.json d01d7cf85d first commit 4 年 前 woocommerce-th-ef5798395d7601ab6fea0f1efd60f40a.json d01d7cf85d first commit 4 年 前 woocommerce-th-f31b0aa0c71dd74b7103120610ca6253.json d01d7cf85d first commit 4 年 前 woocommerce-th-f34924aeff974b0bdbfac124c23fbfe3.json d01d7cf85d first commit 4 年 前 woocommerce-th-f39008456fd28b2f79cdb0964ff294e1.json d01d7cf85d first commit 4 年 前 woocommerce-th-f3f1cc4f5811d4bf8a04a58feca06858.json d01d7cf85d first commit 4 年 前 woocommerce-th-f56e66fd08c07abc78cd844f7e83af8c.json d01d7cf85d first commit 4 年 前 woocommerce-th-f60049653c419cfb1e3dc8876e7a8bdb.json d01d7cf85d first commit 4 年 前 woocommerce-th-f686a272add740773cdcb730afdb5454.json d01d7cf85d first commit 4 年 前 woocommerce-th-f976da155dfdd080588c50ccda5af747.json d01d7cf85d first commit 4 年 前 woocommerce-th-f9c56a0cbb6710505047e6c835953c82.json d01d7cf85d first commit 4 年 前 woocommerce-th-fb2ef023bdd44902b5a309e25e0b7792.json d01d7cf85d first commit 4 年 前 woocommerce-th-fc1fe56fadfdeeb25d1bc441581d92b6.json d01d7cf85d first commit 4 年 前 woocommerce-th-fc4895b6508f32c16c4d8bc69f8162b6.json d01d7cf85d first commit 4 年 前 woocommerce-th-fd20fc8ea1484781160e8ea0d229d5e9.json d01d7cf85d first commit 4 年 前 woocommerce-th-fffdec5db595ec0ca7d043c87bae79b8.json d01d7cf85d first commit 4 年 前 woocommerce-th-wc-admin-app.json d01d7cf85d first commit 4 年 前 woocommerce-th.mo d01d7cf85d first commit 4 年 前 woocommerce-th.po d01d7cf85d first commit 4 年 前 tum/whitesports - Gogs: Simplico Git Service

暫無描述

wp-trackback.php 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /**
  3. * Handle Trackbacks and Pingbacks Sent to WordPress
  4. *
  5. * @since 0.71
  6. *
  7. * @package WordPress
  8. * @subpackage Trackbacks
  9. */
  10. if ( empty( $wp ) ) {
  11. require_once __DIR__ . '/wp-load.php';
  12. wp( array( 'tb' => '1' ) );
  13. }
  14. /**
  15. * Response to a trackback.
  16. *
  17. * Responds with an error or success XML message.
  18. *
  19. * @since 0.71
  20. *
  21. * @param int|bool $error Whether there was an error.
  22. * Default '0'. Accepts '0' or '1', true or false.
  23. * @param string $error_message Error message if an error occurred.
  24. */
  25. function trackback_response( $error = 0, $error_message = '' ) {
  26. header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
  27. if ( $error ) {
  28. echo '<?xml version="1.0" encoding="utf-8"?' . ">\n";
  29. echo "<response>\n";
  30. echo "<error>1</error>\n";
  31. echo "<message>$error_message</message>\n";
  32. echo '</response>';
  33. die();
  34. } else {
  35. echo '<?xml version="1.0" encoding="utf-8"?' . ">\n";
  36. echo "<response>\n";
  37. echo "<error>0</error>\n";
  38. echo '</response>';
  39. }
  40. }
  41. // Trackback is done by a POST.
  42. $request_array = 'HTTP_POST_VARS';
  43. if ( ! isset( $_GET['tb_id'] ) || ! $_GET['tb_id'] ) {
  44. $tb_id = explode( '/', $_SERVER['REQUEST_URI'] );
  45. $tb_id = (int) $tb_id[ count( $tb_id ) - 1 ];
  46. }
  47. $tb_url = isset( $_POST['url'] ) ? $_POST['url'] : '';
  48. $charset = isset( $_POST['charset'] ) ? $_POST['charset'] : '';
  49. // These three are stripslashed here so they can be properly escaped after mb_convert_encoding().
  50. $title = isset( $_POST['title'] ) ? wp_unslash( $_POST['title'] ) : '';
  51. $excerpt = isset( $_POST['excerpt'] ) ? wp_unslash( $_POST['excerpt'] ) : '';
  52. $blog_name = isset( $_POST['blog_name'] ) ? wp_unslash( $_POST['blog_name'] ) : '';
  53. if ( $charset ) {
  54. $charset = str_replace( array( ',', ' ' ), '', strtoupper( trim( $charset ) ) );
  55. } else {
  56. $charset = 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS';
  57. }
  58. // No valid uses for UTF-7.
  59. if ( false !== strpos( $charset, 'UTF-7' ) ) {
  60. die;
  61. }
  62. // For international trackbacks.
  63. if ( function_exists( 'mb_convert_encoding' ) ) {
  64. $title = mb_convert_encoding( $title, get_option( 'blog_charset' ), $charset );
  65. $excerpt = mb_convert_encoding( $excerpt, get_option( 'blog_charset' ), $charset );
  66. $blog_name = mb_convert_encoding( $blog_name, get_option( 'blog_charset' ), $charset );
  67. }
  68. // Now that mb_convert_encoding() has been given a swing, we need to escape these three.
  69. $title = wp_slash( $title );
  70. $excerpt = wp_slash( $excerpt );
  71. $blog_name = wp_slash( $blog_name );
  72. if ( is_single() || is_page() ) {
  73. $tb_id = $posts[0]->ID;
  74. }
  75. if ( ! isset( $tb_id ) || ! (int) $tb_id ) {
  76. trackback_response( 1, __( 'I really need an ID for this to work.' ) );
  77. }
  78. if ( empty( $title ) && empty( $tb_url ) && empty( $blog_name ) ) {
  79. // If it doesn't look like a trackback at all.
  80. wp_redirect( get_permalink( $tb_id ) );
  81. exit;
  82. }
  83. if ( ! empty( $tb_url ) && ! empty( $title ) ) {
  84. /**
  85. * Fires before the trackback is added to a post.
  86. *
  87. * @since 4.7.0
  88. *
  89. * @param int $tb_id Post ID related to the trackback.
  90. * @param string $tb_url Trackback URL.
  91. * @param string $charset Character Set.
  92. * @param string $title Trackback Title.
  93. * @param string $excerpt Trackback Excerpt.
  94. * @param string $blog_name Blog Name.
  95. */
  96. do_action( 'pre_trackback_post', $tb_id, $tb_url, $charset, $title, $excerpt, $blog_name );
  97. header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
  98. if ( ! pings_open( $tb_id ) ) {
  99. trackback_response( 1, __( 'Sorry, trackbacks are closed for this item.' ) );
  100. }
  101. $title = wp_html_excerpt( $title, 250, '&#8230;' );
  102. $excerpt = wp_html_excerpt( $excerpt, 252, '&#8230;' );
  103. $comment_post_ID = (int) $tb_id;
  104. $comment_author = $blog_name;
  105. $comment_author_email = '';
  106. $comment_author_url = $tb_url;
  107. $comment_content = "<strong>$title</strong>\n\n$excerpt";
  108. $comment_type = 'trackback';
  109. $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 ) );
  110. if ( $dupe ) {
  111. trackback_response( 1, __( 'We already have a ping from that URL for this post.' ) );
  112. }
  113. $commentdata = compact( 'comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type' );
  114. $result = wp_new_comment( $commentdata );
  115. if ( is_wp_error( $result ) ) {
  116. trackback_response( 1, $result->get_error_message() );
  117. }
  118. $trackback_id = $wpdb->insert_id;
  119. /**
  120. * Fires after a trackback is added to a post.
  121. *
  122. * @since 1.2.0
  123. *
  124. * @param int $trackback_id Trackback ID.
  125. */
  126. do_action( 'trackback_post', $trackback_id );
  127. trackback_response( 0 );
  128. }