WordPressの公式テーマでsprintfを使っている部分をよく見ますが、これって何?って思われる方もおられるかと思いますので何をやっているのかざっくり説明します。
試用バージョン:Wordpress 4.1
sprintf を使ったWordPressのソース
<?php the_title( sprintf( '<h2><a href="%s">', esc_url( get_permalink() ) ), '</a></h2>' ); ?>
解り辛い場合は、分解して考えてみる
sprintf
sprintf を使うとフォーマットに引数を渡した文字列を返せます。
<?php $url = 'http://ghweb.info'; $format = '<a href="%s">06.GRASSHOPPER</a>'; echo sprintf($format, $num); ?> // 結果:<a href="http://ghweb.info">06.GRASSHOPPER</a>
the_title()
the_title() は、現在の投稿のタイトルを表示するWordPressのテンプレートタグです
<?php the_title( $before, $after, $echo ); ?>
$before | タイトルの前に置くテキスト(初期値: なし) |
---|---|
$after | タイトルの後ろに置くテキスト(初期値: なし) |
$echo | タイトルを表示(TRUE)または返します(FALSE)(初期値: TRUE) |
the_title() の使い方
<?php the_title( '<h2>', '</h2>' ); ?> <h2>タイトル</h2> //結果
the_title() に sprintf を組みこむ
sprintf の処理部分は、the_title( ‘<h2>’, ‘</h2>’ ); で言うところの<h2>になります。
上の方で説明したsprintf のソースを組みむとこんな感じです。
<?php $url = esc_url( get_permalink() ); //$url = 'http://ghweb.info'; $format = '<h2><a href="%s">'; the_title( sprintf( $format, $url ), '</a></h2>' ); ?>
難しく書かなくても出来ます
結果は同じなのでこのように書いても良いですが、
色んな書き方を知っていると他でも使えますでの是非お試しを
色んな書き方を知っていると他でも使えますでの是非お試しを
<h2><a href="<?php echo esc_url( get_permalink() ); ?>"><?php the_title(); ?></a></h2>