ポケロペンチオという軍団

日々のあれやこれやをなんやかんや

WEB

【WordPress】タクソノミーを選択必須にする

タクソノミーを選択必須にする

ここではタイトルの通り、カスタムタクソノミーを選択必須にする方法をご紹介します。

Adjust Admin Categoryプラグインが動かない

Adjust Admin Category」というプラグインを用いると、カスタムタクソノミーを選択必須に指定することができるとのことで、早速使ってみました。

しかし、Adjust Admin Category(バージョン: 2.2.3)は、対応するWordPressの最新バージョンが5.4.0であり、WordPress 5.4.2では必須選択に指定しても期待する動作が得られませんでした。

タクソノミーを選択必須にするようなコードを書く

タクソノミーを選択必須にする内容の記事は散見されるのですが、wordpressのバージョンの問題でコピペで動く情報は見つけられませんでした。

仕方がないので次のような機能を自作します。

  1. WordPress 5.4.2を対象とする。
  2. カスタムタクソノミーを選択していない状態で更新ボタンが押されたら、警告を表示させる。
  3. カスタムタクソノミーを選択していない状態で更新ボタンが押されたら、更新ボタンの機能を動作させない。
  4. 本機能を動作させる対象とする投稿タイプのスラッグを「business」とする。

下のコードをfunctions.phpに記述することで、所望の機能が実現されました。

  <?php
  add_action( 'admin_head-post-new.php', 'mytheme_post_edit_required' ); // 新規投稿画面でフック
  add_action( 'admin_head-post.php', 'mytheme_post_edit_required' ); // 投稿編集画面でフック
  function mytheme_post_edit_required() {// タクソノミー を選択必須にする。
  ?>
    <script type="text/javascript">
      (function() {
        jQuery.noConflict();
        jQuery(jQuery(window).on('load', function() {
          if(jQuery('#post_type').val() == 'business'){
            jQuery('.editor-post-publish-button').on('click', function (e) {
              if(jQuery(".components-checkbox-control__input:checked").length < 1 ) {
                alert(jQuery('.editor-post-taxonomies__hierarchical-terms-list').attr('aria-label') + 'を選択してください。');
                return false;
              }
            });
          }
        }));
      })();
    </script>
  <?php
  }
?>

コードに改行が効かないようで、読みにくくてすみません。

参考サイト

https://hacknote.jp/archives/13907/

-WEB