
comments_popup_script()とは?
comments_popup_script()
は、コメントのポップアップ表示用に必要なJavaScriptを出力するためのテンプレートタグです。
名前の通り、「コメントをポップアップウィンドウで開く仕組み」を実装するために使われていました。WordPress初期(バージョン1.x〜2.x頃)は、コメントフォームやコメント一覧を小さな別ウィンドウで表示するスタイルがよく採用されており、そのために必要なJavaScriptをテーマに追加する目的でこの関数が用意されていました。
comments_popup_script()の現在の利用状況
この関数はとても古いテーマ向けのものであり、WordPressコアでもほとんど使われなくなっています。
現代のテーマではコメントを同一ページに表示するのが一般的です。
そのため、新しいテーマを開発している場合や既存テーマをモダナイズする場合は基本的に使う必要はありません。
ただし、古いテーマの保守やレガシーコードを読む際に、動作や意味を知っておくことは重要です。
comments_popup_script()の基本的な使い方
この関数はヘッダー内に記述して呼び出します。
例:
<head>
<?php comments_popup_script(); ?>
</head>
これだけで、JavaScriptコードがHTMLに出力されます。
comments_popup_script()の出力されるスクリプトの内容
comments_popup_script()
を呼ぶと、以下のようなJavaScript関数が出力されます。
<script type="text/javascript">
function popUp(url) {
window.open(url, 'comments', 'width=400,height=400,scrollbars=yes,resizable=yes');
}
</script>
この popUp()
関数は、コメントリンクをクリックしたときに新しいウィンドウを開き、その中にコメントフォームやコメント一覧を読み込むために使われます。
comments_popup_script()の連携する他の関数
comments_popup_script()
は単体で使うものではなく、コメントリンクを生成する comments_popup_link()
とセットで使う想定でした。
たとえば次のように書きます。
<?php comments_popup_link(
'コメントを書く',
'1件のコメント',
'%件のコメント',
'',
'コメントは閉じられています'
); ?>
このとき、comments_popup_link()
によって生成される <a>
タグの href
はポップアップを開くための javascript:popUp()
呼び出しを含みます。
comments_popup_script()のポップアップ動作の仕組み
流れはこうなります。
comments_popup_script()
が<head>
にpopUp()
を定義する。comments_popup_link()
が<a href="javascript:popUp('コメントURL')">
というリンクを出力。- ユーザーがクリックすると
popUp()
が呼ばれる。 window.open()
により小さい別ウィンドウが開く。- コメント用のテンプレート(
comments.php
など)が表示される。
この方法が古いWordPressテーマの標準的なUIでした。
comments_popup_script()の現代テーマとの違い
現在のテーマはポップアップを使わず、コメント欄を同一ページに表示するため、次のようになります。
comments_template()
でページ内にコメントを表示comments_link()
で単純にアンカーリンク#respond
に飛ばすcomments_popup_script()
は不要
そのため、新規開発ではこの関数をまったく呼ぶ必要がありません。
例: レガシーなテーマでのコード全体イメージ
以下は古いテーマでの例です。
<!DOCTYPE html>
<html>
<head>
<title><?php bloginfo('name'); ?></title>
<?php comments_popup_script(); ?>
</head>
<body>
<?php while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<div class="comments-link">
<?php comments_popup_link(
'コメントを書く',
'1件のコメント',
'%件のコメント'
); ?>
</div>
<?php endwhile; ?>
</body>
</html>
このコードでは、コメントリンクをクリックすると別ウィンドウが開く仕組みです。
comments_popup_script()の注意点
以下の理由から、新しいテーマでは推奨されません。
- モバイル環境でポップアップが使いづらい
- ポップアップブロッカーにより機能しない可能性がある
- UI/UXが古い印象を与える
- SEO的にも不利になる場合がある
comments_popup_script()の代替方法
現代のテーマでは、以下の方法を使います。
✅ コメント数リンク
<a href="<?php comments_link(); ?>">
<?php comments_number(); ?>
</a>
✅ ページ下部にコメントテンプレート
<?php comments_template(); ?>
これにより、ページ遷移なしにコメント一覧・フォームを表示できます。
comments_popup_script()はどんな時に使うか?
基本的には使いません。
例外的に、以下の条件が当てはまる場合にだけ利用を検討します。
- 古いテーマを再現・保守したい
- レガシーUIを意図的に残したい
- 特殊な用途でウィンドウを分離する必要がある
comments_popup_script()のまとめ
comments_popup_script()
のポイント
- コメントをポップアップ表示するためのJavaScriptを出力
comments_popup_link()
と組み合わせて使う- 現在はほぼ非推奨
- 新規テーマでは不要
- 古いテーマの保守では見かけることがある
「comments_popup_script()
はレガシーなテーマ特有の遺産」と覚えておくと良いです。
現代のテーマ制作では基本的に使わず、代わりにページ内表示を採用してください。