サポート » プラグイン » トラックバックの送信内容をフック

  • 解決済 dab

    (@dab)


    初めまして。神崎渉瑠と申します。
    よろしくおねがいします。

    某メーリングリストでも質問させて頂いた内容と同じです。

    プラグインやテーマの開発に関して、
    trackback送信時のdescriptionを書き換えることは出来ないのでしょうか?

    本家の方でこういう記事がありましたが、
    http://wordpress.org/support/topic/153112?replies=1
    どうやら返事がなさそうなので無理なのでしょうか。

    というか、ver. 2.5で自分自身のブログの他の日時の記事にトラックバックすると、
    “……”としか表示されないのですが、インストールに失敗してるんでしょうか?
    本サーバーはxserver.ne.jpを利用していますが、”……”も表示されないのですが、、、

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    WP Multibyte Patch を使っているなら、excerpt の生成条件を変更する (単語数じゃなくて文字数ベースにする) とどうでしょう?

    トピック投稿者 dab

    (@dab)

    受信時のトラブルに関しては、解決しました。
    再確認すると、実際には別の理由(AkismetPlugin)による物だったのですが。(^^;
    AkismetPluginの捕捉から取り出したところ、期待通り表示されました。
    AkismetPluginが無条件に全てのトラックバックをスパム扱いしているようです。。。

    また、以下の記事に対処法がありました。
    受信した内容の編集方法が書かれています。
    http://ja.forums.wordpress.org/topic/212?replies=6

    wp_trackback.phpの最後に
    > do_action(‘trackback_post’, $wpdb->insert_id);
    という行がありますので、
    trackback_postをフックすることで、トラックバック受信時に、
    引数のIDを元にデータベースからデータを引っ張り出さないと行けないと思いますが、
    プラグインによる編集もできると思います。

    で、送信の方ですが、
    現在はthe_excerptとthe_content、それにthe_excerpt_rssをフックすることで、通常表示とRSSの内容とも、期待通り表示されています。
    トラックバック送信時のみ本文(抜粋)が空白になり、既存のWordpres2.0MEで受信しても、本文が表示されません。
    また、ameba.jpで受信すると、本文がないためか、到着しないようです。
    ただ、the_excerpt()については、
    都合上、あらかじめthe_content()の中で作成した独自の抜粋分を表示する様になっていますので、
    the_content()を使わずにthe_excerpt()だけが使われた場合は調べていません。

    空白になる理由として、
    おそらくMacで使用されているバックスラッシュマークが含まれていることなのかも知れませんが、
    都合上、これは消せません。(MacOS Xから円マークの投稿ができないため)
    Windowsからの送信時は円マークで投稿されることになります。
    content_save_preなどをフックさせれば、\マークに統一できるかもしれませんが。。。

    WP Multibyte Patch を使っているなら、excerpt の生成条件を変更する (単語数じゃなくて文字数ベースにする) とどうでしょう?

    新しく設置したWP2.5.1の方ではプラグインは一切使っていませんでした。
    逆に、これを有効にしてみましたが、やはり空白になります。

    ためしに投稿画面の抜粋オプションに適当に書いてみると、そのテキストが送信されました。
    本文から抜粋の作成ができていないような感じですが、、、

    なお、本文に<!–more–>は付けていません。

    トピック投稿者 dab

    (@dab)

    いくつかテストしてみて、なんとか解法が見つかりそうです。

    <!–more–>の有無なども影響するかも知れませんが、
    どうやらthe_contentがトラックバック送信時のフィルターになりそうです。
    抜粋表示オプションを空白にしておくと、
    the_contentフィルターの戻り値がトラックバックの抜粋として送信されるようです。(the_excerptは通らないようです)

    で、抜粋表示オプションを入れると、the_contentフィルターを通さずにthe_excerptフィルターだけを通す様な感じになっているようです。

    the_contentフィルターが実行されたときに、trackbackの送信での呼び出しなのか、通常表示の呼び出しなのかで分岐して、適切な内容を戻してやれば、うまくトラックバックを送信できると思います。

    なんか、自分のテーマの作り方の悪さが原因の様でしたが。。。
    お騒がせしました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「トラックバックの送信内容をフック」には新たに返信することはできません。