¿Cómo puedo conectarme al campo de título del editor de publicaciones para cambiar el HTML?

4

Quiero hacer que los títulos de publicación sean obligatorios en el editor de publicación sin la validación de Javascript o PHP, me gustaría algo realmente simple como agregar el atributo HTML "requerido" al elemento de entrada de título de publicación.

Veo que hay "edit_form_top" y "edit_form_after_title" pero esos enganchan juste antes y justo después de la entrada del título.

¿Hay alguna manera de cambiar realmente el HTML del campo del título de la publicación?

    
pregunta mike23 11.10.2016 - 15:59

2 respuestas

2

Hay sin gancho para cambiar el HTML de la entrada (solo el filtro enter_title_here para cambiar el texto del marcador de posición). Sin embargo, podrías sacar esto fácilmente con jQuery. Prueba esto en tu complemento de funcionalidad o en el archivo functions.php del tema:

// Add to the new post screen for any post type
add_action( 'admin_footer-post-new.php', 'wpse_add_required_attr_to_title_field' );

// Add to the post edit screen for any post type
add_action( 'admin_footer-post.php', 'wpse_add_required_attr_to_title_field' );

function wpse_add_required_attr_to_title_field() {
    ?>
    <script>
        jQuery(document).ready(function($){
            $('input[name=post_title]').prop('required',true);
        });
    </script>
    <?php
}

Sin embargo, debo tener en cuenta que, al no saber cuál es su base de usuarios para la administración de este sitio, la prevención de enviar un formulario basado únicamente en el atributo requerido no se implementa exactamente igual en todo el tablero , por lo que si esto es importante para su caso de uso, es posible que desee ver una implementación que obligue a su propia alerta, como por ejemplo en < a href="https://wordpress.org/plugins/force-post-title/"> Force Post Title plugin.

    
respondido por el brianjohnhanna 11.10.2016 - 22:48
1

Como Brianjohnhanna señala, no hay ningún gancho para cambiar el HTML del campo de título, por lo que la respuesta más cercana es hacer la validación de jQuery.

Esto es lo que terminé haciendo, crear un complemento con:

function wpse_242302_mandatory_title( $hook ) {

    global $post;

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

        wp_enqueue_script( 'mandatory-title', plugins_url( 'mandatory-title.js', __FILE__ ), array( 'jquery' ) );

    }
}
add_action( 'admin_enqueue_scripts', 'wpse_242302_mandatory_title', 20, 1 );

y el javascript:

$(document).ready(function() {

    $('#post').submit(function(){

        if( !$('input[name=post_title]').val() ) {

            $( '.wrap > h1').after('<div id="message" class="error"><p>Please enter a title.</p></div>' );

            return false;

        }

    });

});

En lugar de agregar el atributo "requerido", muestra un mensaje de error predeterminado de Wordpress, pensé que esto se integró mejor con el administrador.

    
respondido por el mike23 24.10.2016 - 10:29

Lea otras preguntas en las etiquetas