WordPressでコメント欄削除&トラックバックURLを表示させる

WordPressでコメント欄削除&トラックバックURLを表示させる

脳腫瘍【錐体斜台部髄膜腫】闘病記のコメントフォーム

友人の闘病ブログ脳腫瘍【錐体斜台部髄膜腫】闘病記の運営をしております。
元々友人がInstagramで公開していた闘病エピソードを「もっと情報が拾いやすい形にしたい(あと今後のために友人のちょっとした収入の確保になればなお良し)」と思い、友人に頼んで私がWordPressでブログを作りました。

ブログを公開する際にコメントフォームやメッセージフォームを設置するかどうか確認したところ、メッセージのやり取りはInstagramで一本化したいとのことだったので、コメントフォームやメッセージフォームは設置しないことに。

しかしブログのアクセスアップのためには外部リンクが欲しい。
正直私はあんまりそのへん詳しくないんだけども、「ブログ アクセスアップ」とかで検索すると詳しい人が大勢そんなアドバイスをしているのが目に入ります。
そして記事にはSNSのシェアボタンを設置しているけども、どうやらTwitterやFacebookでのシェアは、その外部リンクにカウントされないらしい……。

なので、コメントは受け付けなくてもトラックバックを受け付けていれば、個々の記事に気軽に送ってもらって外部リンクが貼られる可能性が高くなるかなあと考え、「コメントフォーム削除&トラックバック受付」の仕様にすることにしました。

WordPressで「コメント欄削除&トラックバック受付」にする際の問題点

WordPressの設定で「コメント受付中止」「トラックバック(&ピンバック※同じWordPressサイトにリンクされたときに送信される通知)受付許可」がそれぞれ設定できるのですが、問題がいくつか。

・WordPressにはデフォルトでトラックバックURLが表示されない。
・コメント欄を閉じるとトラックバック&ピンバックの一覧も表示されない。
・かといってコメント受付状態にするとコメントフォームが表示されてしまう。

対して私がやりたいことは、

・個々の記事にトラックバックURLを表示させる。
・トラックバック&ピンバックを受信している場合は一覧を表示させる。
・コメントフォームのみ非表示。

やり方を調べたけどわからない
WordPressでデフォルト仕様以外のことをしたいときには、私は「WordPress (やりたいこと)」でキーワード検索して先人の知恵を拝借するのですが、トラックバックURLを表示させる方法を調べて試してもなんだか上手くいかない。
コメント欄まるごと(トラックバック&ピンバック通知ごと)削除する方法はあっても、コメントフォームだけを非表示にする方法は見つからない(どこかで解説している人がいるのかもしれないけど、とりあえず私には見付けられず)。

わからないなりにやってみた
仕方ないので調べた方法をいくつか試しつつ、理想の形にするために夜中に数時間掛けて試行錯誤しました。
もうものすごく苦労しましたが、なんとか思ったとおりの仕様に変更することに成功。
普段人の調べたことの表面ばっかりさらってることを深く反省しましたよ。

何をどう悩んでどんな失敗をした末にやり方がわかったのかとか記事にしても面白くないし書くのも大変なのでそこは割愛。
私と同じくらい知識と技術がないのに同じように「コメントフォーム削除&トラックバック・ピンバック一覧表示」「トラックバックURL表示」がやりたい人のために、シンプルにやったことだけメモしておきます。
これがベストな方法なのかとかはよくわかんない。でもとにかくこれでなんとかなりましたってことで。

トラックバック・ピンバック一覧を残しコメント欄のみを非表示にする方法

まずはコメントフォームのみを表示させない方法です。
準備として、WordPressの設定でコメント受付とトラックバック・ピンバック受付を許可設定にします。
使用しているテーマの子テーマも作っておいて下さい。

なんて偉そうに書いておいてすみませんが、私はLIONBLOGを使用しているので、LIONBLOGではこうやったよ☆という説明になります。
なんかウチのテーマと違ってよくわかんないぞ?という人がいたらすみません。
素人の努力の跡だから勘弁してください。

1.親テーマフォルダ内のcomments.phpを子テーマにコピーする。
2.下の方に記述されているブルーマーカー部分を削除する。

ここまで省略
<?php paginate_comments_links( array(
'prev_text' => 'PREV',
'next_text' => 'NEXT',
'mid_size' => 0,
)); ?>
</div>
<?php endif; ?>
<?php $args = array(
'title_reply' => 'コメントを書く',
'label_submit' => __( 'コメントを送信' , 'default' ),
'title_reply_before' => '<h2 class="heading heading-secondary">',
'title_reply_after' => '</h2>',
);
comment_form( $args ); ?>

</aside>
<?php endif; ?>

<h2 class="heading heading-secondary">◯◯</h2>は他のテーマでは無いか別の指定になっているはずです。
ていうか他にもいろいろ違うでしょうけど、LIONBLOG以外を使用している方は試行錯誤する参考程度に読んでおいて下さい……。

これだけだと「コメント」と書かれた場所にトラックバック&ピンバックの一覧が表示されてしまうので、最後にこれ。別に最初にやってもいいけど。

3.comments.phpの上部にあるブルーマーカー部分を「トラックバック・ピンバック」に変更する。

<?php if( comments_open() ): ?>
<aside class="comments">
<?php if( have_comments() ): ?>
<h2 class="heading heading-secondary">コメント<span>(<?php comments_number('0','1','%'); ?>件)</span></h2>

<h2 class="heading heading-secondary">◯◯</h2>は他のテーマでは(略)。
他にもいろいろ(略)。

見た目はこんな感じになります。

トラックバックURLを表示させる方法

もちろんこれもLIONBLOGです。

1.親テーマフォルダ内のsingle.phpを子テーマにコピーする。
2.お好きな場所に下記をペーストする。私は記事下シェアボタンの真下に入れました。

<!-- トラックバックURL -->
<h2 class="heading heading-secondary">この記事のトラックバックURL</h2>
<input readonly="readonly" type="text" value="<?php trackback_url(); ?>">
<!-- /トラックバックURL -->

実際トラックバックURLを表示させるために必要なのは3行目の

<input readonly="readonly" type="text" value="<?php trackback_url(); ?>">

のみです。
でも表示のスタイルをトラックバック・ピンバック一覧と合わせたかったので、
<h2 class="heading heading-secondary">◯◯◯</h2>
2行目のこの部分をcomments.phpから引っ張ってきました。

結果こうなりました。

LIONBLOG以外のテーマを使用している人はsingle.phpのどこかに適当に入れてみて表示を確認しながら調整したら良いのではないでしょうか。

投げやりですみませんが、私にはこれ以上の解説をする能力が無い……。

この記事のトラックバック用URL