Nakkan Base

基本

一番簡単なページャーを使いたい

それは、テンプレートタグ/wp link pages。

single.phpなどの使いたい場所(ただしループ内)に <?php wp_link_pages(); ?> でOK。

この()の中は、以下のようなデフォルトになっています。

<?php         
$defaults = array(            
 'before'           => '<p>' . __( 'Pages:' ),            
 'after'            => '</p>',            
 'link_before'      => '',            
 'link_after'       => '',            
 'next_or_number'   => 'number',             
 'separator'        => ' ',             
 'nextpagelink'     => __( 'Next page' ),            
 'previouspagelink' => __( 'Previous page' ),            
 'pagelink'         => '%',             
 'echo'             => 1
 );            
             wp_link_pages($defaults); 
?>

で、なぜここに書いておくかというと、上のままでは実際のページに「固定ページ 1 2」と表示されるから。

ちょっと考えたけど、要するに「’before’=>'<p>’.__(‘Pages:’),」の「Pages:」が日本語に訳されてしまっているんじゃないかと思って、「Page」に変えてコードを貼ってみた。

そしたら希望通り「Page 1 2」の表示になりました。

何と言っても! 便利テンプレート

私が大好きな(いやいや、おかしいだろ)テンプレート3つです。

  • get_permalink()
  • get_the_title()
  • get_template_directory_uri()

なぜ好きかというと、このどれかを使えば結構何でもうまく解決するから。
「安易」と笑うなかれ。
思う通りに表示してくれるんなら、何と言っても最高なんです。


★echo get_permalink();

 まずは、()の中に記事IDが入る場合。
 <a href=”<?php echo get_permalink( 268 ); ?>”>My link to a post or page</a> 

 それから、記事タイトルが入る場合。
 <a href=”<?php echo esc_url( get_permalink( get_page_by_title( ‘Monthly Events’ ) ) ); ?>”>Monthly Events</a>

  

★echo get_the_title();

 現在の投稿のタイトルを表示します。
 <?php echo get_the_title(); ?>

 記事IDを入れると、その投稿のタイトルを表示します。
 <?php echo get_the_title( $ID ); ?>

  

★echo get_template_directory_uri();

現在のテーマのディレクトリへの絶対パスを取得。

<img src="<?php echo get_template_directory_uri(); ?>/img/hero.jpg">


 ローカルからWordPress化するときについ忘れがちになるけど、このテンプレートがなければパスが通らず表示されない。なので便利。


 ただ、子テーマが使用されている場合は注意です。
 子テーマのディレクトリへの絶対パスを取得するには get_stylesheet_directory_uri() をお使いください。

絶対に必要なテンプレート

WordPress化するときに絶対に必要なテンプレート。
まず思いつくものから少しずつ書き留めておこう。

★get_header();
 テンプレートファィルheader.phpを読み込む。

★get_footer();
 テンプレートファイルfooter.phpを読み込む。

★wp_head();
 これを忘れるとプラグインが動かない。
 </head>の直前につける。

★wp_footer();
 wp_head();と同じく、これを忘れるとプラグインが動かない。
 </body>の直前につける。

★wp_body_open();
 比較的新しい機能で、今後は必須に近くなるかな〜とここにあげておきましょう。
 header.php の bodyタグ直下に設置。そしてfunctions.phpに下記を書き込みます。 

  if ( ! function_exists( ‘wp_body_open‘ ) ) {
    function wp_body_open() {
     do_action( ‘wp_body_open‘ );
   }
  }

★body_class();
 このテンプレートタグに関しては「必須ではない」と言いつつ、DEBAGにかければ「body_class()がありません」とか出てくる。結局つけなさいということ。