サポート » 使い方全般 » トラックバックの表示について

  • 解決済 Grooth

    (@grooth)


    皆さま、はじめまして。
    WP2.5.1でサイトを構築しております。

    トラックバックの表示形式を変更したいのですが、
    具体的にどのファイルをいじればよいのか、皆目検見当がつきません。
    どなたかご教授いただけませんでしょうか?

    現在は下記のように表示されております。

    サイト名 : 年/月/日(曜) – 時:分:秒
    記事タイトル…
    ……

    ・サイト名の部分(<?php comment_author_link() ?>に当たる)は、
    TB元のサイト名のみで記事タイトルは表示されません。
    ・逆に記事タイトルの部分は<?php comment_text() ?>に当たるのですが、記事本文は表示されず、
    文字数に関わらず記事タイトルの直後に1つ、その下に2つ三点リーダが表示されます。

    何なのでしょうコレは。ちなみに、前者はトピックにもなっておりました。
    http://wordpress.org/support/topic/157002?replies=6
    ただ文中に挙げられているどの方法を試してみても、変化はありませんでした。

    これといったコアファイルをいじった記憶もなく、原因が分かりません。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック投稿者 Grooth

    (@grooth)

    追記です。

    <?php comment_text() ?>に当たる部分に記事本文が表示されない問題ですが、
    少し進展がありました。
    http://fish1091.com/wordpress/archives/118
    yutakaさんのこちらの記事を拝見し、
    自分も使用していたContent with show/hide javascript for “more”プラグインを無効化して
    再度トラックバックを送ってみると記事本文の抜粋が表示されました。
    このような感じで表示されています。

    サイト名 : 年/月/日(曜) – 時:分:秒

    記事タイトル…

    記事本文の抜粋…

    希望としては下記のような形にしたいと思っております。

    記事タイトル – サイト名 : 年/月/日(曜) 時:分:秒

    記事本文の抜粋…

    どうかよろしくお願いいたします。

    Content with show/hide javascript for “more”は無効化されているという前提で話を進めますが、

    トラックバック部分の表示は、テーマファイルのcommnents.phpの中に入っています。
    trackbackとかtrackbacks-listとかいったワードで検索したり、
    実際のサイトのトラックバック部分のHTMLソースと見比べたりすれば、表示部分を見つけられると思います。

    そこを希望の形に変更してみてください。

    トピック投稿者 Grooth

    (@grooth)

    odysseyさん、早速のお返事ありがとうございます。

    申し訳ございません、ちょっと説明不足でした。現在 comments.php のトラックバック部分のソースコードは下記のようになっております。

    <ul class="tblist">
    
    <?php foreach ($comments as $comment) : ?>
    <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
    	<cite><?php comment_author_link() ?></cite> <?php _e(':', 'wpj_default'); ?>
    	<?php if ($comment->comment_approved == '0') : ?>
    	<?php _e('<em>Your comment is awaiting moderation.</em>', 'wpj_default'); ?>
    	<?php endif; ?>
    
    	<?php comment_date('Y/m/d') ?> - <?php comment_time('H:i:s') ?> - <?php edit_comment_link(__('Edit', 'wpj_default'),'',''); ?>
    
    	<?php comment_text() ?>
    </li>
    
    <?php /* Changes every other comment to a different class */
    		if ('alt' == $oddcomment) $oddcomment = '';
    		else $oddcomment = 'alt';
    	?>
    
    <?php endforeach; /* end for each comment */ ?>
    
    </ul>

    <?php comment_author_link() ?> がサイト名を、<?php comment_text() ?> が記事タイトルと記事本文の抜粋をそれぞれ出力しているようで、希望通りの形にするには <?php comment_author_link() ?> と <?php comment_text() ?> の中身をいじくらないといけないのだろうと思うのですが(的外れなことを言っているかもしれません…)、具体的にどのファイルに手をつければ良いのかが分からないという状態です。

    トピック投稿者 Grooth

    (@grooth)

    一先ず自己解決しましたので、ご報告いたします。

    <?php comment_author_link() ?> と <?php comment_text() ?> の中身は wp-trackback.php に入っておりました。まず、79行目の

    $title =  wp_html_excerpt( $title, 250 ).'...';

    をコメントアウトするか削除してしまい、記事タイトルの後の”…”を取っ払いました。続いて82行目~87行目の

    $comment_post_ID = (int) $tb_id;
    $comment_author = $blog_name;
    $comment_author_email = '';
    $comment_author_url = $tb_url;
    $comment_content = "<strong>$title</strong>\n\n$excerpt";
    $comment_type = 'trackback';

    という部分を以下のように編集しました。

    $comment_post_ID = (int) $tb_id;
    $comment_author = $title;
    $comment_author_email = $blog_name;
    $comment_author_url = $tb_url;
    $comment_content = "$excerpt";
    $comment_type = 'trackback';

    こうすることで、<?php comment_author_link() ?> が記事タイトルを、<?php comment_text() ?> が記事本文の抜粋のみを吐き出してくれました。$comment_author_email はコメントを受け付けている方はいじったらマズいのかもしれません。自分はTBオンリーなので特に気にしませんでした。あとは comments.php を以下のように編集し完成です。

    <ol class="tblist">
    
    <?php foreach ($comments as $comment) : ?>
    <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
    	<cite><?php comment_author_link() ?></cite>
    	<?php if ($comment->comment_approved == '0') : ?>
    	<?php _e('<em>Your comment is awaiting moderation.</em>', 'wpj_default'); ?>
    	<?php endif; ?>
    
    	- <?php comment_author_email() ?> <?php _e(':', 'wpj_default'); ?> <?php comment_date('Y/m/d') ?> <?php comment_time('H:i:s') ?> - <?php edit_comment_link(__('Edit', 'wpj_default'),'',''); ?>
    
    	<?php comment_text() ?>
    
    <?php /* Changes every other comment to a different class */
    		if ('alt' == $oddcomment) $oddcomment = '';
    		else $oddcomment = 'alt';
    	?>
    
    <?php endforeach; /* end for each comment */ ?>

    多少…とっても強引なやり方ですけれど、希望通りの形に変更することができ、大変満足しております。odysseyさん、突然の質問に答えていただきどうもありがとうございました。(余談ですが、MEから本家ver.へ移行する際にodysseyさんのしたためたエントリーを参考にさせていただきました。その節は大変お世話になりました。)

    >Groothさん
    お伝えしたかった内容はこんな感じなので(強引にやるしかないですw)
    うまくいって何よりです(MEからの移行記事もお役に立ててよかったです:)

    配布テーマだとアップグレードするたびに書き換えるのがちょっと面倒ですが、仕方ないですね(笑)

    解決したようですので、タイトルを[resolved]にしておきました。

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