<?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); ?>