【Cocoonのメモ欄対応】管理画面の投稿検索に「投稿ID」と「メモ欄」を含める

【Cocoonのメモ欄対応】管理画面の投稿検索に「投稿ID」と「メモ欄」を含めるのアイキャッチ画像

【Cocoon必携】「投稿メモ欄」の文字を一発検索する神技

Cocoonには、各記事の編集画面に、自分だけの備忘録を書き残せる便利な「投稿メモ欄」が標準装備されています。

表示されていない場合は、画面右上の[表示オプション]を開いて【メモ】にチェックを入れてください。
WordPress投稿画面の表示オプションボタン
[表示オプション]にも【メモ】がない場合は、Cocoon設定 ➔ 管理画面[タブ] ➔ 「カラム表示」の
[□メモの内容を表示する]にチェックを入れて保存してください。

Cocoon設定「メモの内容を表示する」

Cocoonの投稿画面に装備されているメモ欄

しかし、このメモ欄。記事数が増えてくると「あのメモ、どの記事に書いたっけ…?」と迷子になってしまうのが最大の弱点でした。ところが、通常の[投稿を検索]窓にメモに書いた文字列を入力してもメモ欄のテキストを検索対象にすることはできません。

そのままではせっかくのメモ欄の活用の幅が狭くなってしまうので
1 検索窓に数字を打ち込んだら「投稿ID」でヒットし
2 文字(英語や日本語)を打ち込んだら、通常の検索に加えて「投稿メモ欄」の中身も含めてヒットするコードをご紹介します!

2026年9月22日更新:SQLの組み立て方法を見直し、WordPress標準の$wpdb->prepare()を使う形にコードを更新しました。管理人の環境で、投稿ID検索・メモ欄検索・通常の文字検索の動作を確認しています。

パターンA:【Cocoonユーザー必携】投稿ID&メモ欄の同時検索コード

Cocoonを使っている方は、迷わずこちらのコードを子テーマのfunctions.phpの一番最後に貼り付けてください。

※コードは管理人の環境下で検証済みですが、ご利用は自己責任でお願いします。

/**
 * 【Cocoon専用】管理画面の投稿検索
 * 数字入力:投稿IDのみを対象に完全一致で検索
 * 文字入力:通常のタイトル・本文に加え「投稿メモ欄(the_page_memo)」も同時検索
 */
function extend_admin_search_to_id_and_memo_exclusive( $search, $wp_query ) {
    global $wpdb;

    // 管理画面のメインクエリの検索時以外は除外
    if ( ! is_admin() || ! $wp_query->is_main_query() || ! $wp_query->is_search() ) {
        return $search;
    }

    // 検索キーワードがない場合は除外
    if (
        ! isset( $wp_query->query_vars['s'] )
        || '' === trim( (string) $wp_query->query_vars['s'] )
    ) {
        return $search;
    }

    // 投稿一覧(edit)画面かつ「投稿(post)」の検索時のみ適用
    $screen = get_current_screen();

    if (
        ! $screen
        || 'edit' !== $screen->base
        || 'post' !== $screen->post_type
    ) {
        return $search;
    }

    $term = trim( (string) $wp_query->query_vars['s'] );

    // 1. 数字のみの場合:投稿IDの完全一致検索
    if ( ctype_digit( $term ) ) {
        return $wpdb->prepare(
            " AND ({$wpdb->posts}.ID = %d)",
            (int) $term
        );
    }

    // 2. 文字の場合:通常検索に投稿メモ欄を追加
    $like = '%' . $wpdb->esc_like( $term ) . '%';

    $memo_search = $wpdb->prepare(
        " OR EXISTS (
            SELECT 1
            FROM {$wpdb->postmeta}
            WHERE {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID
            AND {$wpdb->postmeta}.meta_key = %s
            AND {$wpdb->postmeta}.meta_value LIKE %s
        )",
        'the_page_memo',
        $like
    );

    // WordPress標準検索に投稿メモ欄の検索条件を追加
    if ( ! empty( $search ) ) {
        $search = preg_replace(
            '/\)\s*$/',
            $memo_search . ')',
            $search,
            1
        );
    }

    return $search;
}
add_filter( 'posts_search', 'extend_admin_search_to_id_and_memo_exclusive', 10, 2 );

パターンB:【他テーマ用】投稿ID検索シンプルコード

メモ欄のない他のテーマを使用されている場合は、こちらの通常検索に加えて投稿IDも検索に含めるコードをご利用ください。

/**
 * 管理画面の投稿検索に「投稿ID」を含めるカスタマイズ
 * 数字が入力された場合は、IDのみを対象に完全一致で検索する
 */
function extend_admin_search_to_post_id_exclusive( $search, $wp_query ) {
    global $wpdb;

    // 管理画面のメインクエリの検索時以外は除外
    if ( ! is_admin() || ! $wp_query->is_main_query() || ! $wp_query->is_search() ) {
        return $search;
    }

    // 検索キーワードがない場合は除外
    if (
        ! isset( $wp_query->query_vars['s'] )
        || '' === trim( (string) $wp_query->query_vars['s'] )
    ) {
        return $search;
    }

    // 投稿一覧(edit)画面かつ「投稿(post)」の検索時のみ適用
    $screen = get_current_screen();

    if (
        ! $screen
        || 'edit' !== $screen->base
        || 'post' !== $screen->post_type
    ) {
        return $search;
    }

    $term = trim( (string) $wp_query->query_vars['s'] );

    // 数字のみの場合:投稿IDの完全一致検索
    if ( ctype_digit( $term ) ) {
        return $wpdb->prepare(
            " AND ({$wpdb->posts}.ID = %d)",
            (int) $term
        );
    }

    return $search;
}
add_filter( 'posts_search', 'extend_admin_search_to_post_id_exclusive', 10, 2 );

画面に見えていない「投稿ID」を調べる簡単な方法

WordPressでブログを運営していると、特定の記事だけを「おすすめ記事ウィジェットから除外したい」「関連記事ブロックから外したい」という場面がよくありますよね。
その時に必ず必要になるのが、各記事に割り当てられた固有の数字である「投稿ID」です。

ところが、WordPress本来の標準仕様では、この投稿IDは管理画面の投稿一覧には表示されていません。

「じゃあ、Cocoon以外のテーマを使っている人は、どうやって自分の投稿IDを調べればいいの?」と思いますよね。
実は、隠れているIDを確認する方法は至って簡単です。

方法:編集ボタンにマウスポインターを重ねるだけ(クリック不要)

一番早くておすすめなのが、投稿一覧画面でIDを知りたい記事の「編集」という文字の上に、 マウスポインター(マウスの矢印)を重ねるだけの裏技です。

クリックせずに待つと、画面の一番左下の隅っこに、ちっちゃい文字でリンク先のURLが表示されます。
「編集」にマウスを重ねて、投稿IDを表示する方法

そのURLの末尾をよーく見ると、post=31174などといった数字が書かれているので、編集画面をわざわざ開かなくても一瞬でIDを確認することができます!

拍手ありがとうございます!よろしければメッセージをどうぞ!