トラックバック問題 その後

 

先日から問題が発生していたトラックバックの件ですが、以前のブログにコメントをいただいてそれをヒントに調べたところ解決したっぽい。

コメントありがとうございました。

 

結論としては他のブログの応答を待つ時間が短かったようです。

以下、変更点を保存しておきます。困ってる人、ほかにもいっぱいいると思われます。

参考にしたサイトはこちらです。リンク先ではWordpress3.xでの話ですが、ここではWordpress4.1で確認しました。

 

1が他ブログから自ブログへのトラックバックを受けるときの設定、2が自ブログから他ブログへトラックバックを送信する場合の設定ぽい。

ここでは30にしていますがある程度大きめの数字であれば良いようです。

 

1.wp-includes/cron.php 中の wp_remote_post() の設定時間を長くする

 

$cron_request = apply_filters( ‘cron_request’, array(
‘url’ => add_query_arg( ‘doing_wp_cron’, $doing_wp_cron, site_url( ‘wp-cron.php’ ) ),
‘key’ => $doing_wp_cron,
‘args’ => array(
‘timeout’ => 0.01,
‘blocking’ => false,
/** This filter is documented in wp-includes/class-http.php */
‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, false )
)
) );

 

0.01の箇所を30に変更

 

2.wp-includes/comment.php 中の options[‘timeout’] の設定時間を長くする

 

function trackback($trackback_url, $title, $excerpt, $ID) {
global $wpdb;

if ( empty($trackback_url) )
return;

$options = array();
$options[‘timeout’] = 4;
$options[‘body’] = array(
‘title’ => $title,
‘url’ => get_permalink($ID),
‘blog_name’ => get_option(‘blogname’),
‘excerpt’ => $excerpt
);

$response = wp_safe_remote_post( $trackback_url, $options );

if ( is_wp_error( $response ) )
return;

$wpdb->query( $wpdb->prepare(“UPDATE $wpdb->posts SET pinged = CONCAT(pinged, ‘\n’, %s) WHERE ID = %d”, $trackback_url, $ID) );
return $wpdb->query( $wpdb->prepare(“UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, ”)) WHERE ID = %d”, $trackback_url, $ID) );
}

 

4の箇所を30にする。

  • ブックマーク
  • Feedly