この記事は最後に更新してから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


お勧め

the_modified_author(2019年10月17日 更新)

void the_modified_author()
更新者の表示名を表示する。

wp_assign_widget_to_sidebar(2021年7月29日 更新)

void wp_assign_widget_to_sidebar( string $widget_id, string $sidebar_id )
ウィジェットをサイドバーに配置する。

get_comment_ID(2018年5月27日 更新)

int get_comment_ID( )
現在のコメントのIDを取得する。

term_is_ancestor_of(2019年3月15日 更新)

bool term_is_ancestor_of( int | object $term1, int | object $term2, string $taxonomy )
タームが子孫関係か調べる。

wp_get_custom_css_post(2019年11月14日 更新)

WP_Post wp_get_custom_css_post( [ string $stylesheet = '' ] )
カスタマイザーで追加したCSS情報を取得する。