adding a text message beside the comment submit button

What is the cleanest way to display a text message beside the submit button like this in screen shot:

I am currently doing it by editing the file wp-includes/comment-template line 1577 (wordpress 3.5)

before:

input name="submit" type="submit" id="?php echo esc_attr( $args['id_submit'] ); ?" 
value="?php echo esc_attr( $args['label_submit'] ); ?" / 

after:

input name="submit" type="submit" id="?php echo esc_attr( $args['id_submit'] ); ?" 
value="?php echo esc_attr( $args['label_submit'] ); ?" / 
(your message will only be visible after moderation)

I understand this is not the optimal way to do it, but what is the way to do it.

I prefer as a plugin, but editing a theme would be fine.

Topic comments-template comment-form comments plugins themes Wordpress

Category Web


You should not edit the Wordpress core files!

If you have comment_id_fields() in your comments template, like this:

<p class="form-submit">                                                            
    <input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>"
    value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
    <?php comment_id_fields( $post_id ); ?>
</p>

you might use:

add_filter("comment_id_fields","my_submit_comment_message");
function my_submit_comment_message($result){
    return $result." <span>(your message will only be visible after moderation)</span>";
}

and place it in functions.php in your current theme directory.


Yes, you're right, editing the core is not good. Here's one way to do it:

add_action( 'comment_form', 'wpse_93795_comment_form' );
function wpse_93795_comment_form( $post_id ) {
    printf( '<span class="submit-comment-note">%s</span>',
      __( 'your message will only be visible after moderation', 'your_text_domain' ) );
}

You can add this to your theme's functions.php or put it in a plugin if you want.


You can add the text from the file comments.php

    <?php
    // Do not delete these lines
        if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
            die ('Please do not load this page directly. Thanks!');

        if ( post_password_required() ) { ?>
            <p class="nocomments"><?php _e('This post is password protected. Enter the password to view comments.'); ?></p>
        <?php
            return;
        }
    ?>

    <!-- You can start editing here. -->

    <?php if ( have_comments() ) : ?>
        <h3 id="comments"><?php comments_number('0 Comentarios', '1 Comentario', '% Comentarios' );?></h3>

        <div class="navigation">
            <div class="alignleft"><?php previous_comments_link() ?></div>
            <div class="alignright"><?php next_comments_link() ?></div>
        </div>

        <ol class="commentlist">
        <?php wp_list_comments('type=comment&callback=mytheme_comment');?>
        </ol>

        <div class="navigation">
            <div class="alignleft"><?php previous_comments_link() ?></div>
            <div class="alignright"><?php next_comments_link() ?></div>
        </div>
     <?php else : // this is displayed if there are no comments so far ?>

        <?php if ( comments_open() ) : ?>
            <!-- If comments are open, but there are no comments. -->

         <?php else : // comments are closed ?>

        <?php endif; ?>
    <?php endif; ?>

    <?php if ( comments_open() ) : ?>

    <div id="respond">

    <h3><?php comment_form_title( __('Leave a Reply'), __('Leave a Reply to %s' ) ); ?></h3>

    <div id="cancel-comment-reply">
        <small><?php cancel_comment_reply_link() ?></small>
    </div>

    <?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
    <p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.'), wp_login_url( get_permalink() )); ?></p>
    <?php else : ?>

    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

    <?php if ( is_user_logged_in() ) : ?>

    <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php esc_attr_e('Log out of this account'); ?>"><?php _e('Log out &raquo;'); ?></a></p>

    <?php else : ?>

    <p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
    <label for="author"><small><?php _e('Name'); ?></small></label></p>

    <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
    <label for="email"><small><?php _e('Mail (will not be published)'); ?></small></label></p>

    <p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
    <label for="url"><small>Web</small></label></p>

    <?php endif; ?>

    <!--<p><small><?php printf(__('<strong>XHTML:</strong> You can use these tags: <code>%s</code>'), allowed_tags()); ?></small></p>-->

    <p><textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea></p>

    <p><<input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] );>" 
value="<?php echo esc_attr( $args['label_submit'] ); ?>"/>(your message will only be visible after moderation)
    <?php comment_id_fields(); ?>
    </p>
    <?php do_action('comment_form', $post->ID); ?>

    </form>

    <?php endif; // If registration required and not logged in ?>
    </div>

    <?php endif; // if you delete this the sky will fall on your head ?>

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.