BLOGブログ

2024.09.17

便利に使おうWordPressタグ

WordPressには多くの独自タグがあります。
このタグを使いこなすことで、効率よくより良いテーマ開発が可能になります。
※個人開発で得た情報の発信になります。
※タグの習得により、日々更新に努めてまいります。
※コードサンプル内の引数はすべてサンプルになります。

インクルードタグ

// ヘッダーテンプレートを読み込む
<?php get_header(); ?>

// フッターテンプレートを読み込む
<?php get_footer(); ?>

// サイドバーテンプレートを読み込む
<?php get_sidebar(); ?>

// 検索フォームテンプレートを読み込む
<?php get_search_form(); ?>

// コメントテンプレートを読み込む
<?php comments_template(); ?>

// テンプレートパーツを読み込む
<?php get_template_part( 'content', 'page' ); ?>

テンプレートタグ

基本情報

// サイトのタイトルを表示
<?php bloginfo( 'name' ); ?>

// サイトのキャッチフレーズ(説明)を表示
<?php bloginfo( 'description' ); ?>

// サイトの文字エンコーディングを表示
<?php bloginfo( 'charset' ); ?>

// HTML言語属性を出力
<?php language_attributes(); ?>

// ホームページのURLを安全にエスケープして表示
<?php echo esc_url( home_url( '/' ) ); ?>

// 現在のテーマのスタイルシートのURLを安全に表示
<?php echo esc_url( get_stylesheet_uri() ); ?>

// 親テーマのディレクトリURIを安全に表示
<?php echo esc_url( get_template_directory_uri() ); ?>

// 子テーマ(使用中の場合)のディレクトリURIを安全に表示
<?php echo esc_url( get_stylesheet_directory_uri() ); ?>

// ヘッダーに必要なスクリプトやスタイルを挿入
<?php wp_head(); ?>

// フッターに必要なスクリプトを挿入
<?php wp_footer(); ?>

class追加

// <body>タグに動的なクラスを追加
<?php body_class(); ?>

// 投稿や固定ページの要素に動的なクラスを追加
<?php post_class(); ?>

投稿関連

// 投稿のタイトルを表示
<?php the_title(); ?>

// 投稿の本文を表示
<?php the_content(); ?>

// 投稿の抜粋を表示
<?php the_excerpt(); ?>

// 投稿のアイキャッチ画像を表示
<?php the_post_thumbnail(); ?>

// 投稿のカテゴリーを表示
<?php the_category(); ?>

// 投稿のタグを表示
<?php the_tags(); ?>

// 投稿の時刻を表示
<?php the_time(); ?>

// 投稿の日付を表示
<?php the_date(); ?>

// 投稿の日付を取得して表示(フォーマット指定可能)
<?php echo get_the_date(); ?>

// 投稿のパーマリンクを表示
<?php the_permalink(); ?>

// 投稿の著者名を表示
<?php the_author(); ?>

// 投稿のIDを表示
<?php the_ID(); ?>

ナビゲーション

// 次の投稿へのリンクを表示(単一投稿ページで使用)
<?php next_post_link(); ?>

// 前の投稿へのリンクを表示(単一投稿ページで使用)
<?php previous_post_link(); ?>

// 次のページへのリンクを表示(アーカイブページなどで使用)
<?php next_posts_link(); ?>

// 前のページへのリンクを表示(アーカイブページなどで使用)
<?php previous_posts_link(); ?>

// 指定されたメニューを表示
<?php wp_nav_menu(); ?>

著者

// 投稿の著者名を表示
<?php the_author(); ?>

// 著者のウェブサイトへのリンク付き著者名を表示
<?php the_author_link(); ?>

// 著者のアーカイブページへのリンク付き著者名を表示
<?php the_author_posts_link(); ?>

// 指定された著者のメタデータを表示
<?php the_author_meta( $field, $user_id ); ?>

// 現在の著者の投稿数を表示
<?php the_author_posts(); ?>

条件分岐タグ

// メインページ(ホームページ)かどうかを判定
<?php if ( is_home() ) : ?>

// フロントページかどうかを判定
<?php if ( is_front_page() ) : ?>

// 単一投稿ページかどうかを判定
<?php if ( is_single() ) : ?>

// 固定ページかどうかを判定
<?php if ( is_page() ) : ?>

// アーカイブページかどうかを判定
<?php if ( is_archive() ) : ?>

// カテゴリーアーカイブページかどうかを判定
<?php if ( is_category() ) : ?>

// タグアーカイブページかどうかを判定
<?php if ( is_tag() ) : ?>

// 著者アーカイブページかどうかを判定
<?php if ( is_author() ) : ?>

// 日付ベースのアーカイブページかどうかを判定
<?php if ( is_date() ) : ?>

// 検索結果ページかどうかを判定
<?php if ( is_search() ) : ?>

// 404エラーページかどうかを判定
<?php if ( is_404() ) : ?>

// ログインユーザーかどうかを判定
<?php if ( is_user_logged_in() ) : ?>

// 管理画面かどうかを判定
<?php if ( is_admin() ) : ?>

// 投稿タイプのアーカイブページかどうかを判定
<?php if ( is_post_type_archive( 'book' ) ) : ?>

// 現在のページが特定の固定ページかどうかを判定
<?php if ( is_page( 'about' ) ) : ?>

// 現在の投稿が特定のカテゴリーに属しているかを判定
<?php if ( in_category( 'news' ) ) : ?>

カスタム投稿の判定

// 特定のカスタム投稿タイプの単一ページかどうかを判定
<?php if ( is_singular( 'book' ) ) : ?>

// 任意のカスタム投稿タイプの単一ページかどうかを判定
<?php if ( is_singular( array( 'book', 'movie', 'product' ) ) ) : ?>

// カスタム投稿タイプのアーカイブページかどうかを判定
<?php if ( is_post_type_archive( 'book' ) ) : ?>

// 現在の投稿が特定のカスタム投稿タイプかどうかを判定
<?php if ( get_post_type() === 'book' ) : ?>

// カスタムタクソノミーのアーカイブページかどうかを判定
<?php if ( is_tax( 'genre' ) ) : ?>

使用例

<?php
if ( is_front_page() ) {
    // フロントページ用の特別なコンテンツを表示
} elseif ( is_single() ) {
    // 単一投稿ページ用のレイアウトを表示
} elseif ( is_404() ) {
    // カスタム404エラーページを表示
}
?>

ループ

メインループ

<?php
if (have_posts()):
  while (have_posts()): the_post();
?>
    //投稿内容を出力
  <?php endwhile;
else: ?>
  // 投稿がない場合の表示を処理
<?php endif ?>

サブループ

<?php
$args = array(
  'category_name'   => 'xxx',
  'order'   => 'DESC',
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
  while ($the_query->have_posts()) : $the_query->the_post();
?>
    // 投稿内容を出力
  <?php endwhile;
  wp_reset_postdata();
else : ?>
  // 投稿がない場合の表示を処理
<?php endif; ?>

サブループにはたくさんのオプションがあります。

まとめ

主なWordPressのタグがありますが、これはまだ一部になります。テーマ開発の中でこの記事に載っているすべてのタグを使用することはありませんが、知っておくことが大切になります。
この記事を使って効率よくテーマ開発ができることができれば幸いです。