Cómo cambiar el mensaje "Debes estar registrado para publicar un comentario"
Algunos de mis usuarios han mencionado que mi sitio les resulta confuso. Como este es el caso, me gustaría agregar enlaces directos para Iniciar sesión/Registrarse para que los visitantes no registrados puedan hacerlo rápidamente si desean dejar un comentario.
Actualmente solo aparece "Debes estar registrado para publicar un comentario" sin ningún enlace para Iniciar sesión. ¿Dónde puedo editar esto y cambiarlo por "Debes Registrarte o Iniciar sesión para publicar un comentario" con los enlaces correspondientes?
Puedes intentar modificarlo con el filtro comment_form_defaults:
/**
* Modificar el texto "must_log_in" del formulario de comentarios.
*
* @see http://wordpress.stackexchange.com/a/170492/26350
*/
add_filter( 'comment_form_defaults', function( $fields ) {
$fields['must_log_in'] = sprintf(
__( '<p class="must-log-in">
Debes <a href="%s">Registrarte</a> o
<a href="%s">Iniciar sesión</a> para publicar un comentario.</p>'
),
wp_registration_url(),
wp_login_url( apply_filters( 'the_permalink', get_permalink() ) )
);
return $fields;
});
donde utilizamos las funciones principales wp_registration_url() y wp_login_url().
Nota: la información sobre el filtro comment_form_defaults parece faltar en el Codex.
Gracias por la ayuda. Perdón por ser tonto, pero ¿dónde pongo esto, en functions.php?
Aidan Knight
¿Qué hay de esta parte del código wp_login_url( get_permalink() ) );
Brad Dalton
Sí, eso también debería funcionar. Solo quería emular cómo se hace en el núcleo. @BradDalton
birgire
Claro, pero ¿por qué devolver apply_filters al modificar la salida predeterminada del texto en un tema hijo?
Brad Dalton
Supongo que si el usuario estaba usando ese filtro para modificar los enlaces permanentes (como agregar cadenas de consulta adicionales), sería consistente aplicarlo aquí también?
birgire
Entonces, ¿no puedes usar ese filtro si no se devuelve en tu función de filtro personalizada?
Brad Dalton
no necesitas agregar tu propio filtro the_permalink, porque esta configuración simplemente devolverá el valor de get_permalink().
birgire
Aquí está el enlace al codex para comment_form_defaults https://developer.wordpress.org/reference/hooks/comment_form_defaults/
theKing