この記事は最後に更新してから1年以上経過しています。

5.5の機能強化:コメントフォームのちょっとした改良

説明

来月にリリースされるWordPress 5.5に向けてBeta 1、2、3と公開が続いている。「WordPress 5.5 Beta 3(以降Beta 3)」のソースコードを見ていくと、コメントフォームを表示する comment_form関数が機能拡張されていた。

はじめに、この記事は公開された5.5 Beta 3をもとにしており、正式リリースの際に変更される可能性があることを予めお断りする。

comment_form関数のパラメータ

comment_form関数はテーマにおいてリクエスト時の状況に応じたコメントフォームを表示する関数であり、例えば標準テーマ「Twenty Twenty」では次のようなパラメータが指定されている。

comment_form(
	array(
		'class_form'         => 'section-inner thin max-percentage',
		'title_reply_before' => '<h2 id="reply-title" class="comment-reply-title">',
		'title_reply_after'  => '</h2>',
	)
);

投稿ページにアクセスして実際に出力されたHTMLコードの冒頭部分(一部整形)は次の通り。comment_form関数のパラメータで指定された内容が出力されていることがわかる。

<div id="respond" class="comment-respond">
	<h2 id="reply-title" class="comment-reply-title">コメントを残す <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2020/07/08/column0001/#respond">コメントをキャンセル</a></small></h2>
	<form action="http://localhost/wp-comments-post.php" method="post" id="commentform" class="section-inner thin max-percentage" novalidate="">
	:
	:

5.5の改良点

今回変更されたところは、コメントフォームのコンテナであるdiv要素のクラス属性である。5.5ではパラメータとなる連想配列に'class_container'キーが追加され、このクラス属性を任意の内容が指定可能になっている。このキーの指定を省略した場合は、'comment-respond'が適用されるようになっており、互換性は維持されている。

次のコードでは'class_container'キーの値に'comment-respond comment-container'を指定してみた。このように、スペースで区切ることで複数のクラスを指定可能である。

comment_form(
	array(
		'class_container'    => 'comment-respond comment-container',
		'class_form'         => 'section-inner thin max-percentage',
		'title_reply_before' => '<h2 id="reply-title" class="comment-reply-title">',
		'title_reply_after'  => '</h2>',
	)
);

出力されたdiv要素は次の通りで、上記で指定した内容がクラス属性として適用されていることがわかる。

<div id="respond" class="comment-respond comment-container">

この改良点はとてもWordPressっぽい感じがする。CSSやJavaScriptを使ったカスタマイズがやりやすくなるのかな。


最終更新 : 2020年08月12日 08:26


お勧め

count_users(2019年3月1日 更新)

array count_users( [ string $strategy = 'time' [, int $site_id = null ] ] )
役割別のユーザ数を取得する。

wp_embed_defaults(2011年12月1日 更新)

array wp_embed_defaults( )
投稿記事中に埋め込む動画などのサイズを取得する。

the_posts_navigation(2019年9月25日 更新)

void the_posts_navigation( [ array $args = array() ] )
アーカイブページ向けのナビゲーションを表示する。

show_admin_bar(2012年1月5日 更新)

void show_admin_bar( bool $show )
ツールバー(admin bar)を強制的に表示/非表示する。

wp_spam_comment(2013年9月6日 更新)

bool wp_spam_comment( $comment_id )
コメントをスパムにする。