web-dev-qa-db-fra.com

Limitez le champ Extrait dans WP-Admin avec des mots

Est-il possible de limiter le champ Extrait sur la page de publication en mots? Notez que je suis conscient qu'il est possible de reproduire l'extrait et de le limiter en mots, mais je souhaite que le champ lui-même limite le nombre de mots, de la même manière que les limites de caractères dans les zones de texte.

Une telle chose est-elle possible ? Peut-être une solution Javascript? Peut-être que quelque chose de similaire à ce que ce plugin fait au champ de caractères bio (bien que sa limitation soit basée sur le nombre de caractères).

La raison en est que je gère une plate-forme à auteurs multiples, où les utilisateurs font souvent l'erreur de dépasser la limite de mots en cours d'impression dans la liste des publications.

1
Amanda Duke

Vous pouvez utiliser quelque chose comme le plugin jQuery Simply Countable et l'attacher à l'entrée de l'extrait.

Limit_Excerpt_Words::on_load();

class Limit_Excerpt_Words {

    static function on_load() {

        add_action( 'admin_enqueue_scripts', array( __CLASS__, 'admin_enqueue_scripts' ) );

    }

    static function admin_enqueue_scripts() {

        global $hook_suffix;

        if ( 'post.php' == $hook_suffix || 'post-new.php' == $hook_suffix ) {

            wp_enqueue_script( 'jquery-simply-countable', plugins_url( '/jquery.simplyCountable.js', __FILE__ ), array( 'jquery' ), '0.4.2', true );

            add_action( 'admin_print_footer_scripts', array( __CLASS__, 'admin_print_footer_scripts' ) );
        }
    }

    static function admin_print_footer_scripts() {

        ?>
  <script type='text/javascript'>
      jQuery(document).ready(function ($) {

          $('#excerpt').simplyCountable({
              countType:'words', maxCount:5, strictMax:true
          });

      });
  </script>

  <span id="counter" style="display:none;"></span><!-- needs counter to work -->
    <?php
    }
}

PS, il y a aussi Word-count.js dans WP core, mais je ne comprends pas si c'est aussi facile à utiliser pour bloquer des choses.

2
Rarst