Requiere título para las páginas

2

¿Hay alguna forma de obligar a los usuarios a escribir el título de una página antes de publicar? He encontrado un ejemplo de que se requieren títulos de publicaciones, pero no títulos de páginas.

    
pregunta Cody 14.09.2012 - 12:20

2 respuestas

4

Comience con la descarga del complemento llamado Force Post Title .

Aquí está el complemento con una fila (2 con la línea de comentarios) agregada a la parte inferior, basada en nuestros comentarios.

Lo que sucede es que se agrega un pequeño script jQuery a la página Crear publicación / página . La secuencia de comandos comprobará si el campo de título está vacío cuando el usuario haga clic en el botón de envío.

Ya que este es un plugin tan pequeño, puedes modificarlo fácilmente y copiarlo en tus funciones.php. De esa manera, no tendrá que editar un complemento existente que le dará un dolor de cabeza una vez que lo actualice más adelante.

También debo mencionar que encontré algo (un filtro) que podría funcionar en wp-includes/post.php, fila 2489 . Sin embargo, hice algunas pruebas rápidas sin ningún resultado.

/*
Plugin Name: Force Post Title
Plugin URI: http://appinstore.com
Description: Forces user to assign a Title to a post before publishing 
Author: Jatinder Pal Singh
Version: 0.1
Author URI: http://appinstore.com/
*/ 
function force_post_title_init() 
{
  wp_enqueue_script('jquery');
}
function force_post_title() 
{
  echo "<script type='text/javascript'>\n";
  echo "
  jQuery('#publish').click(function(){
        var testervar = jQuery('[id^=\"titlediv\"]')
        .find('#title');
        if (testervar.val().length < 1)
        {
            jQuery('[id^=\"titlediv\"]').css('background', '#F96');
            setTimeout(\"jQuery('#ajax-loading').css('visibility', 'hidden');\", 100);
            alert('POST TITLE is required');
            setTimeout(\"jQuery('#publish').removeClass('button-primary-disabled');\", 100);
            return false;
        }
    });
  ";
   echo "</script>\n";
}
add_action('admin_init', 'force_post_title_init');
add_action('edit_form_advanced', 'force_post_title');
// Add this row below to get the same functionality for page creations.
add_action('edit_page_form', 'force_post_title');
    
respondido por el hampusn 16.09.2012 - 09:08
0

Acabo de modificar la respuesta de @hampusn un poco para mejorar la integración. En lugar de usar un alert() , coloca un cuadro con un buen formato debajo del título.

Envuelve el código jQuery con la función estándar .ready() .

También solo quería hacerlo para un determinado tipo de publicación personalizada, así que dejé el fragmento pero solo puedes eliminar el $post_type comprobar si los futuros lectores no lo necesitan.

Finalmente envolví el mensaje de validación en _() . Teóricamente, podría personalizar este tipo de publicación si quisiera reasignarlo dentro de la declaración principal if .

function rtp_force_post_title_init() 
{
  wp_enqueue_script('jquery');
}
function rtp_force_post_title( $post ) 
{
  $post_type = get_post_type();
  $validation_message = _("The title field must be filled out.");

  if('exhibitor' === $post_type) {
    echo "<script type='text/javascript'>\n";
    echo "
    jQuery( document ).ready(function() {
      jQuery('#publish').click(function(){
        var testervar = jQuery('[id^=\"titlediv\"]').find('#title');
        if (testervar.val().length < 1)
        {
          setTimeout(\"jQuery('#ajax-loading').css('visibility', 'hidden');\", 100);
          var validator_snippet = '<div style=\"padding: 10px; color: #fff; margin-top: -3px; background: #F55E4F;\">" . $validation_message . "</div>';                    
          jQuery('[id^=\"titlediv\"]').find('#titlewrap').append(validator_snippet);          
          setTimeout(\"jQuery('#publish').removeClass('button-primary-disabled');\", 100);
          return false;
        }
      });
    });\n";
    echo "</script>\n";
  }
}
add_action( 'admin_init', 'rtp_force_post_title_init' );
add_action( 'edit_form_after_title', 'rtp_force_post_title' );
    
respondido por el rtpHarry 24.06.2017 - 17:21

Lea otras preguntas en las etiquetas