WordPress記法
はてな記法と云うのが有るよね。実はWordPressを勉強していて、WordPress記法と云うのが有るんだ!
例えば、PFPのIF文は、こうやって書くんだけど
<?php if ( have_posts() ) { echo '<p>投稿があります</p>' ; } else { echo '<p>投稿がありません</p> ; } ?>
これがWordPress記法ではこうなるんですね。
<?php if ( have_posts() ) : ?> <p>投稿があります</p> <?php else : ?> <p>投稿がありません</p> <?php endif; ?>
行にまとまっていて、わかりやすいッちャ解りやすいんですが、これを覚えないとfanctions.phpもheader.php、single.php、sidebar.php、footer.phpも読めないし、書けないんです。
例えば、Loopについても同じで、原則的なphpの書き方だと、Loop回数をカウントする「$i変数」で、Loop回数を制御するんですよね。
$i = 1; while ($i <= 10): echo $i; $i++; endwhile;
ところが、WordPressにはこういった書き方は有りません。Loop回数をカウントする「$i変数」がないというか、WordPressでは表示されないんです。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post() ; ?> <!-- 記事があるときの表示内容をここに書く --> <?php endwhile; else : ?> <!-- 記事がないときの表示内容をここに書く --> <?php endif; ?>
鉄王さんの記事「WordPressの the_post() ってそもそも何者?」はとても解りやすい記事でした。
「$i変数」のかわりthe_post()に、$wp_query という隠れた変数で制御されているんだそうです。この$wp_queryは、WordPressのプログラム側であらかじめ予約されているそうです。
だから、Loopを何回やるか書かなくても予約された回数でLoopが打ち切られるようになっているんだそうです。
予約されているところは、管理パネルの[設定]-[表示設定]-[1ページに表示する最大投稿数]で設定されているとのことです。
やっぱり、WordPress記法を一々覚えないとカスタマイズはできないんだネ。