※当サイトではアフィリエイト広告を利用しています

WordPress

【WordPressテーマ作成】よく使うテンプレートタグ & 関数まとめ

【WordPress自作テーマ】よく使うテンプレートタグ & 関数まとめ

今回はWordPressで自作テーマを作るときに使う

テンプレートタグや関数をまとめてみたいと思います。

共通

基本のループ処理

<?php if(have_posts()):
    while(have_posts()): the_post(); ?>
ループの中身
    <?php endwhile;
endif; ?>

WordPressの基本のループ処理です。

WordPress Codex ループ

サイトのホームURLリンク

<?php echo esc_url(home_url('/')); ?>

サイトのトップページのURLを出力します。
home urlテンプレートタグとesc url関数を組み合わせています。

WordPress Codex テンプレートタグ home url

WordPress Codex 関数リファレンス esc url

ディレクトリURI

<?php echo get_template_directory_uri(); ?>

サイトのディレクトリURIを出力します。
HTMLサイトをWordPress化するときに画像のパスの書き換えなどによく使われます。

WordPress Codex 関数リファレンス get template directory uri

サイトのタイトル

<?php bloginfo('name'); ?>

サイトのタイトルを出力します。

ここではnameとしていますが、
パラメータを変更することで様々なサイトの情報を出力できます。

WordPress Codex テンプレートタグ bloginfo

アイキャッチ画像の表示

<?php if ( has_post_thumbnail() ) : ?>
    <?php the_post_thumbnail(); ?>
<?php else : ?>
    代わりの画像などを表示
<?php endif; ?>

上記の構文では、まずアイキャッチ画像が設定されているかを
<?php if ( has_post_thumbnail(): ?>で確認し、

アイキャッチ画像がある場合は、
<?php the_post_thumbnail(); ?>で画像の出力を行います。

ない場合は、代わりの画像表示など
<?php else : ?>〜<?php endif; ?>の間に書かれた処理を代わりに行います。

WordPress Codex 関数リファレンス has post thumbnail

WordPress Codex テンプレートタグ the post thumbail

サブループ

<?php
$args = array(
    // ここに抽出したい条件を設定します
    'posts_per_page' => '3',
    'post_type' => 'news'
);

$my_query = new WP_Query($args);
?>

<?php if ($my_query->have_posts()):
    while( $my_query->have_posts()): $my_query->the_post(): ?>
        // ここに処理内容を入れます
    <?php endwhile;
wp_reset_postdata();
endif; ?>

メインループ以外の条件で投稿を表示させたい場合に使います。
新しいオブジェクトnew WP_Queryを作り、その中に配列で条件を指定します。

上記の例だと、「newsの投稿タイプ」から「3件」という条件になります。
最後に「wp_reset_postdata();」で、サブループを終わらせる必要があります。

WordPress Codex ループ

WordPress化する際の頻出タグ

<?php wp_head(); ?>

<?php wp_head(); ?>
  • </head>タグの直前に記述します。
  • パラメーターは空。
  • wp_headアクションフックをスタートさせる。

<?php wp_header(); ?>ではないので書きまちがえに注意。

WordPress Codex 関数リファレンス wp head

<?php wp_footer(); ?>

<?php wp_footer(); ?>
  • </body>タグの直前に記述します。
  • パラーメーターは空。
  • wp_footerアクションフックをスタートさせる。

<?php wp_head(); ?>と<?php wp_footer(); ?>で
WordPressにログイン時に画面上部にある管理ツールバーが表示される。

WordPress Codex テンプレートタグ wp footer

body要素にクラスを出力 / クラスを追加

<body <?php body_class(); ?>

body要素に異なるクラスを出力します。

<body <?php body_class('クラス名'); ?>

またパラメータの中にクラス名を入れることで、独自のクラスを自分で追加することができます。

WordPress Codex テンプレートタグ body class

htmlタグの言語属性を表示

<html <?php language_attributes(); ?>>

htmlタグの言語属性を表示します。

WordPress Codex テンプレートタグ language attributes

インクルードタグ

header.phpの呼び出し

<?php get_header(); ?>

header.phpを呼び出します。

WordPress Codex 関数リファレンス get header

footer.phpの呼び出し

<?php get_footer(); ?>

footer.phpを呼び出します。

WordPress Codex 関数リファレンス get footer

sidebar.phpの呼び出し

<?php get_sidebar(); ?>

sidebar.phpを呼び出します。

WordPress Codex 関数リファレンス get sidebar

検索フォーム(searchform.php)の呼び出し

<?php get_search_form(); ?>

検索フォームのファイルsearchform.phpを呼び出します。

WordPress Codex 関数リファレンス get search form

テンプレートファイルの呼び出し

<?php get_template_part($slug, $name); ?>

テンプレートファイルを呼び出します。

WordPress Codex 関数リファレンス get template part

single.php (投稿個別ページ)

タイトル

<?php the_title(); ?>

記事のタイトルを表示します。

WordPress Codex テンプレートタグ the title

投稿日

<?php the_time('Y-m-d'); ?>

厳密には投稿時間を表示するテンプレートタグです。

日付を表示するには<?php the_date(); ?>というテンプレートタグがありますが、
同日の投稿が複数ある場合、最初の1投稿目しか日付が表示されません

一方で<?php the_time(); ?>は複数同日の投稿があっても
2つ目以降の投稿も日付が表示されます。

WordPress Codex テンプレートタグ the time

リンク付きの属するカテゴリー (デフォルトの投稿タイプ)

<?php the_category( ' ' ); ?>

記事の属するカテゴリーをリンク付きで出力します。
リンクをクリックすると、カテゴリーのアーカイブページに飛ばしてくれます。

WordPress Codex テンプレートタグ the_category

リンク付きの属するタグ (デフォルトの投稿タイプ)

<?php the_tags('', ''); ?>

記事に属するタグをリンク付きで出力します。
リンクをクリックすると、タグのアーカイブページに飛ばしてくれます。

WordPress Codex テンプレートタグ the tags

本文

<?php the_content(); ?>

投稿の本文を出力します。

WordPress Codex テンプレートタグ the content

archive.php (アーカイブページ)

個別記事のURL

<?php the_permalink(); ?>

投稿のパーマリンクのURLを出力します。

WordPress Codex テンプレートタグ the permalink

抜粋文

<?php the_excerpt(); ?>

投稿の抜粋文を出力し、文末には […]が表示されます。

  • 投稿の抜粋機能に入力している場合:投稿の抜粋機能の入力内容を表示。
  • 投稿の抜粋機能を入力していない場合:投稿の本文が抜粋され表示。

また投稿の本文の抜粋の場合、
wp multibyte patchプラグインを入れているかどうかで抜粋される文字数が変わります。

  • プラグインを入れている場合:55単語まで出力。
    ※日本語は英単語のように区切りが判別されず、ほぼ全ての内容が表示されてしまう場合もある。
  • プラグインを入れていない場合:110文字まで出力。

WordPress Codex テンプレートタグ the excerpt

ページネーション

<?php the_posts_pagination(); ?>

リンク付きのページネーションを出力します。

WordPress Codex 関数リファレンス the posts pagination

アーカイブのタイトル

<?php the_archive_title(); ?>

内容に基づいてアーカイブのタイトルを出力します。

対象は下記などのアーカイブページ:

  • カテゴリー
  • タグ・カスタムタクソノミー などのターム
  • 日付
  • 投稿タイプ
  • 作成者 etc

WordPress Codex 関数リファレンス the archive title

search.php (検索結果の表示ページ)

検索クエリを表示

<?php the_search_query(); ?>

検索フォームで検索が行われたときに、
検索窓に打ち込まれた検索クエリを表示します。

WordPress Codex テンプレートタグ the search query

検索クエリを取得

<?php get_search_query(); ?>

検索フォームで検索が行われたときに、
検索窓に打ち込まれた検索クエリを取得します。

WordPress Codex 関数リファレンス get search query

カスタムテンプレートの作り方

<?php
/*
Template Name: テンプレートの名前
*/

// ファイル名は「任意の名前.php」で作成

固定ページのカスタムテンプレートを作成することができます。

カスタムテンプレートはテンプレート階層のルールに元使いないので、
「任意のファイル名.php」ファイルを作成します。

ファイルの文頭で任意のテンプレート名をコメントアウトで指定すると、
固定ページ編集画面「ページ属性」>「 テンプレート」から
テンプレートが選べるようになります。

固定ページ編集画面からテンプレートを選択

WordPress Codex ページテンプレート

以上、WordPressでよく使うテンプレートタグと関数でした。

 

【手順まとめ】HTMLサイトのWordPress化
【手順まとめ】HTMLサイトのWordPress化今回はHTMLサイトをWordPress化する際の手順をまとめてみようと思います。 なお前提としてすでに静的にコーディングされたHTML / CSS / JS などは作成済みの状態を想定しています。...
【WordPress自作テーマ作成】全体の流れをまとめてみる
【WordPressテーマ作成】全体の流れをまとめてみる今回はWordPressで自作テーマを作るときの全体の流れをまとめてみたいと思います。...