概要
is_single
関数は、投稿かどうかを調べるためのWordPressの関数です。この関数を使用すると、特定の投稿が表示されているかどうかを判断することができます。主に以下のような機能を実装する際によく使われます。
- 特定の投稿フォームや要素を表示する制御
- サイドバーやウィジェットの表示内容の条件付け
- ソーシャルシェアボタンの表示制御
- カスタムCSSクラスの適用
- 特定のスクリプトやスタイルの読み込みの条件付け
- SEO対策のためのメタタグの挿入
- 解析ツールのトラッキングコードの条件付け
- 投稿特有のナビゲーションメニューの生成
構文
is_single( mixed $post = '' )
パラメータ
$post
(mixed) – 任意の投稿のID、スラッグ、または投稿オブジェクト。指定しない場合は、現在の投稿が対象となります。
戻り値
- (bool) – 現在のページが単一投稿である場合は
true
、そうでない場合はfalse
を返します。
関連する関数
使用可能なバージョン
- すべてのバージョンで利用可能です。
コアファイルのパス
wp-includes/query.php
サンプルコード
-
特定の投稿IDをチェック
- 現在のページがIDが5の投稿であれば、特定のメッセージを表示する。
if (is_single(5)) { echo '特定の投稿が表示されています。'; }
-
投稿スラッグを利用
- 「my-post」というスラッグの投稿が表示されている場合、特定のCSSクラスを追加する。
if (is_single('my-post')) { echo '<div class="my-custom-class">この投稿専用のスタイル</div>'; }
-
投稿オブジェクトを利用
- 投稿オブジェクトを取得し、その投稿が単一ページであればタイトルを表示する。
$post = get_post(); if (is_single($post)) { echo '<h1>' . get_the_title($post) . '</h1>'; }
-
複数の特定の投稿をチェック
- 5と7のIDの投稿が表示されている場合、特定のナビゲーションメニューを表示する。
if (is_single(array(5, 7))) { wp_nav_menu(array('theme_location' => 'special-menu')); }
-
条件付きスクリプトの読み込み
- 単一投稿のときだけ特定のスクリプトを読み込む。
function my_custom_scripts() { if (is_single()) { wp_enqueue_script('my-script', get_template_directory_uri() . '/js/custom.js', array(), null, true); } } add_action('wp_enqueue_scripts', 'my_custom_scripts');
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | 〇 |
get_header | 〇 |
wp_head | 〇 |
この関数は特定のWordPressバージョンで削除または非推奨になっていないため、利用可能な最新の状態です。