サポート » 使い方全般 » パーマリンクが半角英数以外の場合にアラートを出すなど

  • 解決済 matsuda

    (@matsudastudio)


    これまでwordpressのパーマリンクをうっかり日本語のまま公開してしまって慌てて直すことがあるのですが、半角英数以外が使われてたらアラートを出すなどできたらいいのにと思うのですが、なにか良い方法ご存知の方いないでしょうか?

    本当に公開しても良いか確認するJSや、タイトルやコンテンツを入力必須にするなどは結構方法あるのですが・・・

    宜しくお願いいたします。

    • このトピックはmatsudaが6年、 4ヶ月前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    下記コードではどうでしょうか。
    あまり検証していないので内容を理解した上で利用してください。
    多少の手直しは必要だと思います。特に新規追加時の処理は適当にコーディングしたので・・・。

    functions.php 等に、

    function enqueue_post_slug_validation_script( $hook ) {
    	if ( $hook !== 'post.php' && $hook !== 'post-new.php' )
    		return;
    
    	$script = <<<SCRIPT
    jQuery(function($) {
      if ($('#post_type').val() == 'post' || $('#post_type').val() == 'page') {
        $('#post').submit(function(e) {
          if (adminpage == 'post-new-php') {
            // 新規追加
            slug = $('#post_name').val();
            if (slug == '') {
              // 新規追加でスラッグが空の場合はタイトルを検証する
              slug = $('#title').val();
              if (slug.match(/[^A-Za-z0-9]+/)) {
                alert('新規追加時はタイトルを半角英数字で入力するかスラッグを入力してください。');
                return false;
              }
            } else {
              if (slug.match(/[^A-Za-z0-9]+/)) {
                alert('スラッグ(パーマリンク)を半角英数字で入力してください。');
                return false;
              }
            }
          } else {
            // 更新
            slug = $('#post_name').val();
            if (slug.match(/[^A-Za-z0-9]+/)) {
              alert('スラッグ(パーマリンク)を半角英数字で入力してください。');
              return false;
            }
          }
        });
      }
    });
    SCRIPT;
    
    	wp_add_inline_script( 'post', $script );
    }
    
    add_action( 'admin_enqueue_scripts', 'enqueue_post_slug_validation_script' );
    トピック投稿者 matsuda

    (@matsudastudio)

    早速ありがとうございます!
    そして素晴らしいです!希望どおりの挙動をしてくれています。

    追加として「9」のあとに「-_」を追加してハイフン、アンダーバーもOKとしました。

    あと、カスタム投稿にも対応させたかったので以下のようにしました。
    if ($(‘#post_type’).val() == ‘post’ || $(‘#post_type’).val() == ‘page’) {

    if ($(‘#post_type’).val() == ‘post’ || $(‘#post_type’).val() == ‘page’ || $(‘#post_type’).val() == ‘news’) {

    手を加えたのはそれくらいです。
    半端な知識しかないので、一から作るとなると難しいですが、ここまでヒント頂ければ応用しやすくて、本当に感謝しております!!
    これでうっかりミスが減ります(笑)

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「パーマリンクが半角英数以外の場合にアラートを出すなど」には新たに返信することはできません。