it-swarm.com.de

Wie kann ich mich in das Titelfeld des Post-Editors einhängen, um den HTML-Code zu ändern?

Ich möchte, dass die Post-Titel im Post-Editor obligatorisch sind, ohne dass Javascript oder die PHP -Validierung erforderlich sind. Ich möchte, dass das HTML-Attribut "required" dem Post-Titel-Eingabeelement hinzugefügt wird.

Ich sehe dort "edit_form_top" und "edit_form_after_title", aber diese Haken juste vor und kurz nach der Titeleingabe.

Gibt es eine Möglichkeit, den HTML-Code des Felds für den Post-Titel tatsächlich zu ändern?

3
mike23

Es gibt kein Haken , um den HTML-Code der Eingabe zu ändern (nur den enter_title_here-Filter, um den Platzhaltertext zu ändern). Mit jQuery können Sie dies jedoch problemlos durchführen. Versuchen Sie dies in Ihrem Funktions-Plugin oder in der functions.php -Datei des Themas:

// 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
}

Ich möchte jedoch darauf hinweisen, dass ich nicht weiß, wie Ihre Benutzerbasis für die Verwaltung dieser Site aussieht, und dass die Verhinderung des Einsendens eines Formulars, das ausschließlich auf dem erforderlichen Attribut basiert, nicht in allen Bereichen genau gleich implementiert ist , wenn dies der Fall ist Wenn es für Ihren Anwendungsfall wichtig ist, sollten Sie sich eine Implementierung ansehen, die eine eigene Warnung erzwingt, wie zum Beispiel im Plugin Post-Titel erzwingen .

2
brianjohnhanna

Brianjohnhanna weist darauf hin, dass es keinen Haken gibt, um den HTML-Code des Titelfelds zu ändern. Daher ist die nächstmögliche Antwort die jQuery-Validierung.

Folgendes habe ich getan, um ein Plugin zu erstellen:

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 );

und das 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;

        }

    });

});

Anstatt das "Erforderlich" -Attribut hinzuzufügen, wird eine Wordpress-Standardfehlermeldung angezeigt. Ich dachte, dies ist besser in den Administrator integriert.

1
mike23