---
title: "single_post_title() &#8211; 個別投稿テンプレートで投稿タイトルを表示する関数"
canonical_url: "https://olein-design.com/blog/single_post_title"
language: "ja"
date_published: "2024-05-11T09:57:29+09:00"
date_modified: "2024-05-11T09:57:30+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "General Template Tag"
    - "WordPress functions"
---

# single_post_title() &#8211; 個別投稿テンプレートで投稿タイトルを表示する関数

この記事では、投稿ページのタイトルを表示・取得する関数 `single_post_title()` について紹介します。

目次

## single_post_title() 関数とは

この関数は、投稿タイトルを表示するために `single.php` テンプレートで利用されることを想定して最適化されています。

タイトルの後ろに区切り文字を設定することはできませんが、 `$prefix` を空にしておくことで、タイトルの区切り文字を手動で設定することができます。

また、`$prefix` はそれらの前後には自動的にスペースを挿入しないので、任意で入れる必要があります。

## パラメーター

| `$prefix` | タイトルの前に表示したいものを設定できる |
| --- | --- |
| `$display` | 表示するかしないかを設定できる |

## 使い方

基本的には、`single.php` テンプレートにそのまま関数を設置する利用方法が一般的です。

```
single_post_title();
```

`$prefix` を指定すると以下のようになります。

```
single_post_title( '投稿タイトル：' );
```

出力はこのようになります。

```
投稿タイトル：Hello world!
```

## フック

### single_post_title

```
apply_filters( ‘single_post_title’, string $_post_title, WP_Post $_post )
```

第一引数に `$_post_title` 、第二引数に `$_post` が利用できます。

こちらのコードで試すことができます。

```
add_filter(
	'single_post_title',
	function ( $_post_title, $_post ) {
		echo '<hr>' . basename(__FILE__) . ' :: ' . __LINE__;
		echo( '<pre>' );
		var_dump( $_post_title, $_post );
		echo( '</pre>' );
		echo '<hr>';

		return $_post_title;
	},
	10,
	2
);
```

## まとめ

クラシックテーマ開発において投稿記事ページを作る際に、タイトル表示では利用することが多い関数でしょう。実際に、WordPress 標準テーマ Twenty Twenty-One の `index.php` 21行目にも利用されています。

[埋め込みコンテンツ](https://github.com/WordPress/WordPress/blob/960c3631e4c3a13924210aa353a5ee0a608af24e/wp-content/themes/twentytwentyone/index.php#L21)

ぜひ使い方を確認しておきましょう。

[埋め込みコンテンツ](https://developer.wordpress.org/reference/functions/single_post_title)
