WordPressでカテゴリーを1つだけ選択可能にする方法|複数選択を禁止する実装例
公開日:2026.06.08 更新日:2026.06.23
WordPress
この記事には広告が含まれています。

はじめに
WordPressの投稿機能では、デフォルトで複数のカテゴリーを選択できます。
しかしサイトによっては、
- 記事は必ず1つのカテゴリーに所属させたい
- パンくずリストを安定させたい
- URL構造をシンプルにしたい
- 投稿ルールを統一したい
といった理由から、カテゴリーを1つだけ選択できるようにしたい場合があります。
私も実務で「子カテゴリーのみ選択可能」「複数選択禁止」という要件に対応したことがありました。
今回は、WordPressでカテゴリーを1つだけ選択できるようにする方法を紹介します。
デフォルトのカテゴリー選択
WordPress標準ではチェックボックス形式になっています。
☑ お知らせ
☑ イベント
☑ ブログ
そのため複数選択が可能です。
JavaScriptで複数選択を禁止する方法
管理画面でカテゴリーを1つだけ選択可能にする場合、JavaScriptで制御する方法が手軽です。
functions.phpに以下を追加します。
function limit_category_selection() {
global $pagenow;
if (($pagenow === 'post.php' || $pagenow === 'post-new.php')) {
?>
<script>
jQuery(function($){
$('#categorychecklist input[type="checkbox"]').on('change', function(){
if($(this).prop('checked')){
$('#categorychecklist input[type="checkbox"]').not(this).prop('checked', false);
}
});
});
</script>
<?php>
}
}
add_action('admin_footer', 'limit_category_selection');
動作イメージ
例えば、
☑ お知らせ
◻︎ イベント
◻︎ ブログ
の状態で、カテゴリーの「イベント」を選択すると、
◻︎ お知らせ
☑ イベント
◻︎ ブログ
となり、先に選択していたカテゴリーが自動で解除されます。
Gutenbergでも有効
この方法はクラシックエディタだけでなく、Gutenbergのカテゴリー選択にも有効なケースが多いです。
ただしWordPress本体の仕様変更によってDOM構造が変わる可能性があるため、アップデート後は動作確認をおすすめします。
子カテゴリーだけ選択させたい場合
実務では、
お知らせ
├ イベント
├ 採用情報
ブログ
├ 制作実績
├ 技術メモ
のような構造になっていることがあります。
この場合、
親カテゴリーは選択不可
にして、
子カテゴリーのみ選択可能
とする運用が分かりやすくなります。
PHPで保存時に制御する方法
JavaScriptだけでは完全ではありません。
例えば、
- REST API
- CSVインポート
- プラグイン経由
などから複数カテゴリーが保存される可能性があります。
より厳密にするなら保存時にも制御します。
add_action('save_post', function($post_id){
$cats = wp_get_post_categories($post_id);
if(count($cats) > 1){
wp_set_post_categories($post_id,array($cats[0]));
}
});
クイック編集にも注意
しかし、WordPressには「クイック編集」という便利な機能があり、こちらでは別のカテゴリー選択UIが使用されています。
そのため、投稿編集画面だけを制御していても、クイック編集から複数カテゴリーを設定できてしまう場合があります。
私自身、更新作業ではクイック編集をよく利用するため、実務ではクイック編集側もあわせて制御するようにしています。
カテゴリーを厳密に管理したい場合は、
- 投稿編集画面
- クイック編集
- 保存時の処理
のすべてで制御しておくと安心です。
クイック編集でカテゴリーを1つだけ選択可能にする方法については、以下の記事で詳しく解説しています。
実務でカテゴリーを1つにする理由
私が案件でよく感じるメリットは以下です。
パンくずが安定する
複数カテゴリーの場合、
ホーム > お知らせ > 記事
ホーム > イベント > 記事
など表示が不安定になることがあります。
URL設計がシンプルになる
カテゴリーをURLに含めている場合、
どのカテゴリーを採用するか悩む必要がありません。
投稿ルールが統一できる
複数人で更新するサイトでは、
担当者ごとにカテゴリー付けのルールが変わることがあります。
カテゴリーを1つに限定することで運用が安定します。
まとめ
WordPressでは標準で複数カテゴリーを選択できますが、案件によっては1つだけ選択できるようにした方が管理しやすい場合があります。
私自身、企業サイトや施設サイトでは、
- 子カテゴリーのみ選択
- 複数選択禁止
という仕様を採用することがよくあります。
実装自体はJavaScriptで比較的簡単に実現できますが、運用まで含めて考えると、保存時の制御やクイック編集への対応も検討しておくと安心です。