pathautoを使っているとtrackbackが使えない件
トラックバックを送ろうとしてもどうも送れていない様子。念のためログをチェックしてみることに。すると、
require_once(sites/all/modules/pathauto/pathauto.inc) [<a ref='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory: /var/www/drupal-6.6/sites/all/modules/pathauto/pathauto.module の 84 行目
のエラーが出ている。
いろいろ調べてみると、どうもバグとして提出されているみたいだ。
http://drupal.org/node/228969
パッチも出ている(http://drupal.org/files/issues/trackback-DRUPAL-5.ping_.patch)のだが、このパッチはDrupal5用で、Drupal6では使えない。
仕方ないので、このパッチを参考に勝手にtrackback.moduleを修正することにする。
case 'update': if (_trackback_node_type($node->type)) { module_load_include('inc', 'trackback', 'trackback.ping'); register_shutdown_function('_trackback_send', $node); $cron = ($node->status && variable_get('trackback_auto_detection_enabled', 0) == 2); db_lock_table('trackback_node'); db_query("UPDATE {trackback_node} SET awaiting_cron=%d, can_receive=%d WHERE nid=%d", $cron, $node->can_receive, $node->nid); if (!db_affected_rows()) { db_query("INSERT INTO {trackback_node}(nid, awaiting_cron, can_receive) VALUES(%d, %d, %d)", $node->nid, $cron, $node->can_receive); } db_unlock_tables(); } break;
の部分の、
register_shutdown_function('_trackback_send', $node); db_lock_table('trackback_node'); db_unlock_tables();
register_shutdown_function('_trackback_send', $node);
のすぐ下の行に
_trackback_send($node);
を追加するだけだ。
割とメジャーなモジュールの組み合わせなのに、なぜかあまり話題になっていないのはなぜだろう?pathautoなんて必ず使うモジュールで、トラックバックも使用頻度が高いと思うのだが・・。