【WordPress制作】テンプレートタグを使って表示させよう

<?php get_template_part(‘includes/header’); ?> のように、wordpressで使えるphpコードを「テンプレートタグ」と言います。wordpressの管理画面から、記事を投稿したり、日時設定、筆者の情報などを設定しますよね。これを、実際のコードを書いて反映させるのがテンプレートタグです。

というか。wordpressって一体なんなのでしょうか。言ってみれば、管理画面をぽちぽちいじって、データベースに登録する作業と言っていいでしょう。んで、データベースに登録されてるものを,コード書いて綺麗に表示させる仕組みです。

代表的なテンプレートタグを紹介してみましょう。

共通部分に使うやつ

<?php get_template_part(‘ includes/header’ ); ?> パーツを表示させます

<?php echo home_url(); ?>  ホームページの名前
<?php bloginfo('name'); ?> ブログの名前
<?php bloginfo('description'); ?> ブログの説明


使用例 ブログ名がURLリンクになってる
<a href="<?php echo esc_url(home_url('/')); ?>"><?php bloginfo('name'); ?></a>

html languageをWPの設定を反映させる

使用例
<html <?php language_attributes(); ?>>

時間表記

<?php echo date(‘Y/m/d’); ?> 年月日
<?php the_time('Y/m/d'); ?> 設定,日付形式
<?php the_time(get_option('date_format')); ?> 設定,オプションの日付形式のフォーマットを返す

記事を書くphpファイルでよく使う

<?php the_title( ‘ ‘,  ‘ ‘ ); ?> 記事のタイトルを表示
<?php the_author(); ?> adminで設定した著者名追加
<?php the_excerpt(); ?> 抜粋
<a href="<?php the_permalink(); ?>"> 投稿へのリンク

<?php the_post(); ?>  最新の投稿を取得

<?php while (have_posts()): ?> 
    Trueのあいだ表示したい記事のフォーマット
<?php endwhile; ?>

<?php if (have_posts()) : ?>
    <p>Trueのとき表示したいもの(下のloopなど)</p>
<?php else : ?>
		<p>記事が見つかりませんでした</p>
<?php endif; ?>

<?php while (have_posts()): the_post(); ?> 記事があるならば最新の投稿を取得して

画像に関するテンプレートダグ

<?php
$img = wp_get_attachment_img_src(22); img source 22番目を取得
?>

<?php
$id = get_post_thumbnail_id();
$img = wp_get_attachment_img_src($id, 'full'); 
引数にsizeを指定。画質変わる thumbnail, medium, large, full またはarray(32, 32)
?>

<?php
if (has_post_thumbnail()):
	$id = get_post_thumbnail_id();
  $img = wp_get_attachment_img_src($id);
else:
  $img = array(get_template_directory_uri() . 'img/post-bg.jpg');
	サムネイルがなかったら決まったものを表示
endif;
?>

var_dump($img);
var_dump($id); 要素を配列で表示
$img[0] で配列0番目にある画像を指定

<header class="masthead" 
style="background-image: url('<?php echo $img[0]; ?>')" > 



<body <?php body_class(); ?>> bodyのclass=に様々な情報をのせられる
<?php wp_body_open(); ?> プラグインに関係した記述 navbarのあるファイルにかく


<?php echo get_template_directory_uri(); ?> ブログファイルがあるディレクトリを出力

<?php echo esc_attr($item->url); ?> 直接表示したい時はエスケープ処理

<?php $title = the_title( ‘ ‘,  ‘ ‘ ); ?>
<?php echo str_replace('新しい', '古い', $title); ?>