printfとsprintf

Don’t Be Shy to Use sprintf with WordPress – Konstantin Kovsheninより
積極的にprintfsprintfを使っていこうぜーって話 (^^)

printfはフォーマット済みの文字列を出力し、sprintfはフォーマットされた文字列を返す。
PHP: sprintf – Manual

子テーマ化

screenshot

子テーマ化の仕事でSampression Liteというテーマを見ることになった。
タイル状に並んでスッキリ爽やかなテーマだ。最新バージョンは1.4(2013/09/12現在)。テーマを直接書き換えていたので最新版をダウンロード後、sempression-lite-kidとして子テーマ化した。

header.phpなど全バージョンから変わっている部分が多く、取りあえず子テーマにしてみると、画面真っ白。。あ、ローカルで試したけどね ^^;
functions.phpだけ親テーマ見に行かせれば大丈夫かな?程度で軽く見てたら意外に時間かかったけど、子テーマ化は比較的スムーズに終わった。

できあがったサイトの日付を見ていて気がついた。画面上では日付は変わってるけど、timeタグのdataime属性値が変。。どれも同じじゃん!! ^^;

[code]
<time class="col" datetime="2011-09-28">
<span class="ico">Published on</span>
<a href="URL" title="12:06" rel="bookmark">09 9月 2013</a>
</time>
[/code]

…同じ。。

[php]
<div class="meta clearfix">
<?php
printf( __( ‘%3$s <time class="col" datetime="2011-09-28"><span class="ico">Published on</span>%2$s</time> ‘, ‘sampression’ ),’meta-prep meta-prep-author’,
sprintf( ‘<a href="%4$s" title="%2$s" rel="bookmark">%3$s</a>’,
get_permalink(),
esc_attr( get_the_time() ),
get_the_date(‘d M Y’),
get_month_link( get_the_time(‘Y’), get_the_time(‘m’))
),
sprintf( ‘<div class="post-author col"><span class="ico hello">Author</span><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></div>’,
get_author_posts_url( get_the_author_meta( ‘ID’ ) ),
sprintf( esc_attr__( ‘View all posts by %s’, ‘sampression’ ), get_the_author() ),
get_the_author()
)
);
?>
</div>
[/php]

テンプレート見ると、直で書いてあった。

もしかして気づいてないだけじゃぁ…と思いながら、連絡方法が今ひとつわからず。。でも折角の機会だし、ちゃんと連絡してみようと思う。

time(datetime)

この二つがわかりやすい。ってことで、書き換えてみた。

[php]
<time class="col" datetime="2013-09-09T12:06:44+00:00">
<span class="ico">Published on</span>
<a href="URL" title="12:06 PM" rel="bookmark">2013年09月09日</a>
</time>
[/php]

ちゃんと出た!!日付はISO 8601で (^^)
折角Microdataで構造化されてるんだから日付は出ていた方がいい。

今で何となく使ってきた%なんちゃら。WordPressではカテゴリやAuthorなどのmetaで使われてるのが多い気がする。%なんちゃらは型指定子。PHP: sprintf – Manualのサンプルが大変分かり易い。

これからは使える部分は「.(ドット)」よりsprintfを積極的に使っていこうと思う (^^)。