WordPressのトラックバック
どうも自分のブログからトラックバックPINGが送信されず、トラックバックが動作してないっぽかったので、調べてみました。
VersionはME2.2.3です。
2.2.3で同様な事例が挙がっていなかったのですが、こちらだけでしょうか??
不慣れなPHPでしたが、ソースを追いかけると、
wp-include/comment.php#trackback
がどうやらトラックバックPING送信のメソッドらしいので、追跡してみると、
wp-include/comment.php#trackback
↓
wp-include/post.php#trackback_url_list
↓
どこからも呼ばれていない
と
wp-include/comment.php#trackback
↓
wp-include/comment.php#do_trackbacks
↓
wp-include/comment.php#do_all_pings
↓
wp-includes/default-filters.php
↓
??
で、どうも投稿した時に呼ばれてない?
では呼んでしまえ、ということでwp-admin/post.phpの
15行目付近
case 'post':
$parent_file = 'post-new.php';
$submenu_file = 'post-new.php';
check_admin_referer('add-post');
$post_ID = 'post' == $action ? write_post() : edit_post();
do_trackbacks($post_ID); // 追加
87行目付近
case 'editpost':
$post_ID = (int) $_POST['post_ID'];
check_admin_referer('update-post_' . $post_ID);
$post_ID = edit_post();
do_trackbacks($post_ID); // 追加
の2箇所にdo_trackbacksを追加したところ、きちんとトラックバックPINGが送信されました。
本来なら設定の条件見たりとかしないといけないと思いますが、まー自分しか使わないので、とりあえずは良しとします。
Posted in WordPress |
