You are here: Home » php » wordpress公式TwentySixteenのcomments.phpの説明

wordpress公式TwentySixteenのcomments.phpの説明

elevator

Twenty Sixteenのcomments.phpの説明です。phpとwordpressのテンプレートタグについてです。

スポンサーリンク

Twenty Sixteen の comments.phpの中身

 

 

 

 

post_password_required(); は投稿にパスワードが必要かどうか確認して、パスワードの成否も確認するタグです。それを return で戻してます。

 

 

 

 

Twenty Sixteen の comments.phpのif文其の1

 

 

if ( have_comments() ) : で処理するコメントがあるかどうかをチェックしてます。

 

 

次にコメントのタイトル部分です。Twenty Sixteenの場合、投稿の 記事タイトル+コメント件数+フィードバックとして表示されてます。

get_comments_number 投稿ページに対してコメントがいくつあるか取得してます。それを$comments_number変数に格納して、if ( 1 === $comments_number ) で条件(この場合、1と変数$commennts_numberが同じであればtrue)を決めてます。 つまり、コメントが一つなら

 

次の

が実行されます。

 

_x( は翻訳の記述でこちらは表示しません。取得だけです。だからprintf();でフォーマットして出力してる感じです。

_x( ‘翻訳する文’, ‘コンテキスト名’, ‘翻訳ファイル名’ )

 

同じような記述で __( がありますこちらも翻訳しますが出力しません。

__( ‘翻訳する文’, ‘翻訳ファイル名’ )

 

_X( と ( の違いはコンテキストのするかしないかの違いです。翻訳におけるコンテキストとは同じ言葉でも海外では違う意味でとらえられたり、状況によって違う翻訳をしたい時に一定のルールを決めて翻訳することです。それをするかしないかの違いです。基本的には__( で十分だと思います。

 

_e( こちらは翻訳して出力します。

_e( ‘翻訳する文’, ‘翻訳ファイル名’ )

 

printfが出てきたのでこちらも少し書いておきます。

 

echo と print と printf と sprint、vsprintf どれも値や文字などを出力または返す命令ですが、次のような違いがあります

 

echo()は「,」区切りで複数の文字列を指定できるのに対し、print()はできません

echo “Hello”, “World”;

 

print()は結果を常に1返しますが、echo()は返しません。

$output = print “Hello World”;

 

printfとsprintとvsprintfとvsprintf

printf = 指定のフォーマットに従い整形した文字列を出力し、その文字数を返します

sprint = 指定のフォーマットに従い整形した文字列を返しますが出力しません。変数に代入できます。

vprintf = printfと似たj振る舞いをしますが、配列を引数として受け取ります。

vsprintf = こちらもprintfと同じような振る舞いをしますが、配列を引数とします。出力しません。

この辺に関してはまたいつか書きます。(長くなる汗)

 

でIDから投稿のタイトルとを取得してます。

 

 

次にコメントが二つ以上なら以下の記述が働きます。

 

_nx はこれも翻訳のタグなのですが、コンテキストと複数形両方に対応しているのですが、これに関してはあんまり自信がありません。

 

基本構文

$single = 必須  文字列 コメントが一つの場合、こちらが出力される

$plural = 必須 文字列 コメントが二つ以上の場合、こちらが出力される。

$number = 必須 ここは数値

$context =必須  コンテキストしたいルール

$domain = テキストドメイン

 

多分こんな感じ。

 

 

 

number_format_i18nは三桁 1000の位ずつカンマを入れる機能がありフォーマットしてくれます。1000件のコメントなんてあるのかな?

 

get_the_title()で記事のタイトルを取得してます。

 

 

次にページャーとコメント一覧です。

 

 

が二つありますがこれはコメントにナビゲーションを表示します。つまりコメント欄の上下にページャーがつきます。

 

次にwp_list_commentsコメントに内容を表示してます。

‘style’ => ”, も ‘avatar_size’ => ,もわかり易いのですが、

 

‘short_ping’ => true, はコメント欄にpingbackと表示されるみたいです。

スポンサーリンク

Twenty Sixteen の comments.phpのif文其の2

 

if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), ‘comments’ ) ) :

この記述でコメントを受けつけない条件が入ってます。

_e( ‘Comments are closed.’, ‘twentysixteen’ );で翻訳された コメントを受け付けてません と表示されます。

 

これが働かなければ以下の記述が働いて、コメントフォームを出力してます。

スポンサーリンク

コメントを残す