---
title: "comments_open() &#8211; コメントが利用可能かどうかを判断する関数"
canonical_url: "https://olein-design.com/blog/comments_open"
language: "ja"
date_published: "2024-05-10T13:56:32+09:00"
date_modified: "2024-05-10T14:27:18+09:00"
content_type: "post"
author: "久野晃司"
taxonomies:
  category:
    - "WordPress"
  post_tag:
    - "Conditional Tag"
    - "WordPress functions"
---

# comments_open() &#8211; コメントが利用可能かどうかを判断する関数

`comments_open()` 関数は、投稿がコメントを許可しているかどうか（受け付けているかどうか）を判断するために使用します。

目次

## comments_open() 関数とは

WordPress には、投稿に対してコメントを残すことを許可する・しないを設定することができます。

例えば、各投稿の編集画面では、ディスカッションパネルで設定することができるようになっています。

![](https://olein-design.com/wp-content/uploads/2024/05/image-18-1024x590.png)

また、管理画面内の設定＞ディスカッションでも一律に設定をすることができます。

![](https://olein-design.com/wp-content/uploads/2024/05/image-19-1024x590.png)

これらで設定できる投稿へのコメント許可の可否を `comments_open()` 関数で判断することができます。

## パラメーター

| `$post` | 投稿 ID もしくは WP_Post オブジェクト |
| --- | --- |

## 使い方

一般的によく利用されるのは、その投稿においてコメントが有効になっているかどうかを判断する方法でしょう。

```
if ( comments_open() ) {
	echo "コメントが有効です";
} else {
	echo "コメントが無効です";
}
```

また、特定の投稿 ID を指定して、コメントが有効かどうか判断することもできます。

```
if ( comments_open( 1 ) ) {
	echo "投稿 ID が 1 の投稿にコメントを受け付けています";
} else {
	echo "投稿 ID が 1 の投稿にコメントを受け付けていません";
}
```

## フック

```
apply_filters( ‘comments_open’, bool $comments_open, int $post_id )
```

第一引数に `$comments_open` 、第二引数に `$post_id` を指定できるフィルターフックです。

以下のように記述することで、すべての投稿に対してコメントを利用できないようにすることもできます。

```
add_filter( 'comments_open', '__return_false' );
```

## まとめ

WordPress の中でも多くの場所で利用されている関数です。特に日本国内では最近あまりブログに対してコメントをするという文化が少なくなってきている感じもしますが、以前は盛んにブログのコメント欄で交流が広がっていました。そして、海外では現在でもコメントを活用した交流も依然として活発に行われています。

そういった機能を支える一部として、この `comments_open()` 関数は使われています。WordPress の内部でどのように使われているかは[こちら](https://github.com/search?q=comments_open%28+repo%3AWordPress%2FWordPress&type=code)を確認するとわかりやすいです。

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