WordPressでクイック編集でもカテゴリーを1つに制限する方法|複数選択を禁止する実装例

公開日:2026.06.09 更新日:2026.06.23

WordPress

この記事には広告が含まれています。

はじめに

以前、「WordPressでカテゴリーを1つだけ選択可能にする方法」を紹介しました。

しかし、その方法だけでは完全ではありません。
なぜなら、投稿編集画面では1つしか選択できなくなっていても、一覧画面の「クイック編集」から複数カテゴリーを選択できてしまうからです。

実際の運用では、

  • カテゴリーは必ず1つだけにしたい
  • パンくずリストを安定させたい
  • URL構造を統一したい
  • 投稿ルールを統一したい

といったケースも多くあります。
今回は、クイック編集でもカテゴリーを1つに制限する方法を紹介します。


なぜクイック編集が問題になるのか

例えば前回の記事で紹介したコードは、「投稿編集画面」のカテゴリー選択しか制御していません。
そのため、

投稿一覧

クイック編集

カテゴリー選択

では複数選択が可能なままです。
運用担当者がクイック編集を利用すると、意図せず複数カテゴリーの記事が作成されてしまいます。

クイック編集のカテゴリー構造

通常の投稿編集画面では、

#categorychecklist

が利用されています。
一方、クイック編集では

.inline-edit-categories

という別の要素が生成されます。

そのため、通常編集画面用のJavaScriptだけでは制御できません。

クイック編集にも対応するコード

functions.phpへ以下を追加します。

function limit_category_selection() {
 global $pagenow;
  if ($pagenow === 'post.php' ||$pagenow === 'post-new.php' ||$pagenow === 'edit.php') {
?>
<script>
jQuery(function($){
 // 通常編集画面
 $(document).on('change','#categorychecklist input[type="checkbox"]',function(){
  if($(this).prop('checked')){
   $('#categorychecklist input[type="checkbox"]').not(this).prop('checked', false);
  }
 });
 // クイック編集
 $(document).on('change','.inline-edit-categories input[type="checkbox"]',function(){
  if($(this).prop('checked')){
   $(this).closest('.inline-edit-categories').find('input[type="checkbox"]').not(this).prop('checked', false);
  }
 });
});
</script>
<?php>
}
add_action('admin_footer', 'limit_category_selection');

動作イメージ

例えば、

☑ お知らせ
◻︎ イベント
◻︎ ブログ

の状態で、カテゴリーの「お知らせ」を選択します。
その後、

◻︎ お知らせ
☑ イベント
◻︎ ブログ

となり、前のカテゴリーが自動で解除されます。

JavaScriptだけでは不十分

この方法で管理画面上の操作は制限できます。

しかし、

  • CSVインポート
  • REST API
  • 外部プラグイン
  • 一括編集

などから複数カテゴリーが保存される可能性があります。

より確実に運用したい場合は、保存時にも制御を行うことをおすすめします。

保存時に1カテゴリーへ制限する

functions.phpへ以下を追加します。

add_action('save_post', function($post_id){
 $cats = wp_get_post_categories($post_id);
 if(count($cats) > 1){
  wp_set_post_categories($post_id,[$cats[0]]);
 }
});

このコードを追加すると、万が一複数カテゴリーが設定されても、保存時に最初のカテゴリーのみ残るようになります。

さらにおすすめなのは「子カテゴリーのみ選択可能」

実務では、

お知らせ
├ イベント
├ 採用情報

ブログ
├ 制作実績
├ 技術メモ

のような構造になっていることがよくあります。

この場合は、

  • 親カテゴリーは選択不可
  • 子カテゴリーのみ選択可能
  • 複数選択禁止

という運用が最も管理しやすいと感じています。

まとめ

投稿編集画面だけカテゴリーを1つに制限しても、クイック編集から複数カテゴリーが設定できてしまう場合があります。

そのため、

  • 投稿編集画面
  • クイック編集
  • 保存処理

のすべてで制御しておくと安心です。

特に企業サイトや施設サイトなど、カテゴリー構造を厳密に管理したい案件では効果的です。

WordPressの標準機能だけでは実現できない運用ルールも、少しカスタマイズすることで実装できますので、同じような要件がある方はぜひ試してみてください。