この記事では、WordPressでよく使う「関数」について、目的別にまとめました。
例えば、headerやfooter、CSS、画像、テンプレートファイル、投稿タイトルなど、WordPressでは「関数」を使うことで読み込みや表示が可能です。忘れがちですが、カスタマイズには必須級で使うコードのため、ぜひこの記事をご活用ください!
WordPressを動かすために必須の関数
wp_head()
<head>
<!-- 他のmetaタグなど -->
<?php wp_head(); ?>
</head>
主な記述場所:</head>
の直前
wp_head()とは、WordPress側が用意してくれるhtmlをhead内に出力してくれる関数です。
通常headタグ内には、metaタグであったり、CSSやjavascriptファイルなどの読み込みを記述することが多いと思います。それらに加えこのwp_head()を記述することで、WordPress本体やWordPressに入れたプラグインのmeta情報、プラグイン固有のスタイルシート・javascriptファイルなどを自動で出力してくれます。
WordPress本体やWordPressプラグインが正しく動作するために必要なファイル群を読み込む関数となっており、必須の関数です。忘れずに記述するようにしましょう!
wp_footer()
<?php wp_footer(); ?>
</body>
主な記述場所:</footer>
の直前
wp_head()同様、wp_footer()を記述することで、ページの最後に読み込むjavascriptや、WordPressにログインしている時にサイト上部に表示される管理バーのコードが自動で出力されます。
wp_footer()の記述が無いと、一部のスクリプトが読み込まれずエラーになったり、管理バーが表示されなくなるため、必須の関数です。忘れずに記述するようにしましょう!
ヘッダーを取得したい
get_header()
<body>
<?php get_header(); ?>
テーマ内にあるheader.phpを読み込む関数です。
headerは<body>
の直下に設置することが多いですが、ご自身のサイトのデザインに合わせて記述して問題ないです。
get_header(‘文字列’)
<body>
<?php get_header('archive'); ?>
上記はheader-archive.php
を読み込む場合の例です。
「header-任意の文字列.php」のテンプレートファイルを読み込みたい場合は、この記述方法で読み込みできます。
これを利用する場面は、header.phpとは異なるサブ的なheaderを用意している場合になります。上記の例のコードで言うと、archiveページ(投稿の一覧ページ)にだけこのheader-archive.phpを読み込みたい場合です。
そのため、使わないこともあります。ご自身のサイトに合わせて活用してみてください。
フッターを取得したい
get_footer()
</main>
<?php get_footer(); ?>
テーマ内にあるfooter.phpを読み込む関数です。
footerは</main>
タグの下に設置することが多いですが、ご自身のサイトのデザインに合わせて記述して問題ないです。
get_footer(‘文字列’)
</main>
<?php get_footer('archive'); ?>
上記はfooter-archive.php
を読み込む場合の例です。
上記のget_header('name')
と同様、「footer-任意の文字列.php」のテンプレートファイルを読み込みたい場合は、この記述方法で読み込みできます。
bodyタグのクラスを出力したい
body_class()
<body <?php body_class(); ?>>
</body>
この記述をすることで、ページの種類に応じた class を自動で付与してくれるようになります。便利!
例えば、サイトのトップページでは<body class="home">
というように、「home」というClassが自動で出力されます。そのため、トップページではこのスタイルを当てたい、投稿ページではこのスタイルを当てたいなどが簡単に可能です。
独自のテンプレートファイルを読み込みたい
get_template_part()
<?php get_template_part('sample'); ?>
テーマ(フォルダ)
└ sample.php
ヘッダーやフッター以外の独自で作成したファイルを読み込む場合に利用する関数です。
上記例は、同じディレクトリ内に別で用意しておいたsample.phpを読み込む場合の記述です。
get_template_part(‘文字列’, ‘文字列’)
<?php get_template_part('sample', 'page'); ?>
テーマ(フォルダ)
└ sample-page.php
上記は、同じディレクトリ内にあるsample-page.phpを読み込む場合の記述例です。
「文字列-文字列.php」のようにハイフンでつなげたテンプレートファイルを読み込みたい場合は、get_template_part(ファイル名前半, ファイル名後半) のように指定します。 ハイフンで記述しないので注意しましょう!
get_template_part(‘文字列/文字列’)
<?php get_template_part('template/sample'); ?>
テーマ(フォルダ)
└ template(フォルダ)
└ sample.php
上記は、テーマ内の同じディレクトリ内にある「template」フォルダ内にあるsample.phpを読み込む場合の記述例です。ようは、1つ下の階層のファイルを読み込みたいときに利用します。
「フォルダ名/ファイル名.php」のように、スラッシュで指定します。
get_template_part(‘文字列/文字列’, ‘文字列’))
<?php get_template_part('template/sample', 'page'); ?>
テーマ(フォルダ)
└ template(フォルダ)
└ sample-page.php
上記は、さらに応用です。
テーマ内の同じディレクトリ内にある「template」フォルダ内にあるsample-page.phpを読み込む場合の記述例です。
「フォルダ名/ファイル名前半-ファイル名後半.php」のように、スラッシュとカンマで指定します。
投稿の文章を抜粋して表示したい
the_excerpt()
<p class="excerpt">
<?php the_excerpt(); ?>
</p>
投稿の「抜粋」を表示する関数です。
この関数を利用することで、投稿内の先頭の文字から「110文字」が抜粋され表示されます。
mb_substr( get_the_excerpt(), 数字, 数字 )
<p class="excerpt">
<?php echo mb_substr( get_the_excerpt(), 0, 40 ); ?>
</p>
こちらは、文字数を指定して抜粋を出力する場合に利用します。
mb_substr
を用いて、文字列の中から開始文字数と取得文字数を指定します。
上記例は、投稿本文の最初の文字から数えて40文字の文字を取得する記述です。
投稿の本文を表示したい
the_content()
<article>
<?php the_content(); ?>
</article>
上記で、投稿の本文全てを取得し表示します。
CSSや画像を読み込みしたい
get_template_directory_uri()
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/assets/css/style.css">
有効化している親テーマまでのURLを取得できます。
画像やcss、jsファイルを読み込みたいときに、よく使用します。
get_theme_file_uri()
<img src="<?php echo get_theme_file_uri( '/assets/img/logo.jpg' ); ?>">
こちら、上記のget_template_directory_uri()
と同様の機能を持ち、テーマディレクトリまでURLを取得できます。
WordPress 4.7 から利用可能で、現在の主流の記述方法です。
アイキャッチ画像を表示したい
the_post_thumbnail()
<div>
<?php the_post_thumbnail( 'thumbnail' ); ?>
</div>
アイキャッチ画像を表示する関数です。
出力されるサイズの設定も可能で、上記例の「thumbnail」の部分に対して、thumbnail
、medium
、large
、full
が指定できます。 このサイズの設定は、WordPressの[設定]→[メディア]でそれぞれ可能です。
URLを取得したい
home_url()
<a href="<?php echo home_url('/'); ?>">TOPページ</a>
<a href="<?php echo home_url('/about/'); ?>">ABOUTページ</a>
現在利用しているWordPressのトップページのURLを返します。
また、下層ページの場合は、下層ページのディレクトリ名を記述することで返すことができます。
echo
は文字を表示させるために必要なので、忘れず記述しましょう。
URLをエスケープ処理したい
esc_url()
<a href="<?php echo esc_url(home_url('/')); ?>">トップページ</a>
<a href="<?php echo esc_url(home_url('/about/')); ?>">ABOUTページ</a>
テキストや属性をエスケープ処理し、URLを無害化します。
エスケープ処理は文字列を扱う際にセキュリティ上の問題を防いでくれるため、基本はこのように記述するのがおすすめです。
ループ内で投稿のリンクを出力したい
the_permalink()
<a href="<?php the_permalink(); ?>"></a>
<p><?php echo get_permalink(); ?></p>
上記はループ内のコードで、各投稿のパーマリンクを表示・取得しています。
なお、ループの外でページのURLを取得したい場合は、get_permalink()
。
ループの中でページのURLを取得したい場合は the_permalink()
の認識で大丈夫です。
投稿のタイトルを表示したい
the_title()
<h1><?php the_title(); ?></h1>
投稿のタイトルを表示します。
投稿のカテゴリーを表示したい
the_category()
<?php $cat = get_the_category(); echo $cat[0]->cat_name; ?>
投稿で設定するカテゴリーとカテゴリーのリンクを表示します。
投稿の時刻を表示したい
the_time()
<p class="time"><?php the_time(); ?></p>
投稿の公開時刻を表示します。the_time()
の括弧内に特に記述をしなければ、WordPress管理画面の「設定」にある「日付形式」で設定している内容で出力されます。
また、the_time()
の括弧内にパラメーターを付与することで、付与した書式に沿った形式で出力することができます。 例えば、the_time('Y.m.d')
でパラメーターを付与した場合、下記の形式に沿って、「年.月.日」と表示されます。
・Y= 西暦4桁、
・m= 月2桁(1桁の月なら先頭に0つける)
・d= 日2桁(1桁の日付なら先頭に0つける)
ようは、記事を投稿した日時が2023年7月1日なら、2023.07.01と表示されます。
年月日のフォーマットについて詳しく知りたい方は下記の記事をご参考にしてみてください。