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?

¿Qué hay de esta parte del código wp_login_url( get_permalink() ) );

Sí, eso también debería funcionar. Solo quería emular cómo se hace en el núcleo. @BradDalton

Claro, pero ¿por qué devolver apply_filters al modificar la salida predeterminada del texto en un tema hijo?

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?

Entonces, ¿no puedes usar ese filtro si no se devuelve en tu función de filtro personalizada?

no necesitas agregar tu propio filtro the_permalink
, porque esta configuración simplemente devolverá el valor de get_permalink()
.

Aquí está el enlace al codex para comment_form_defaults
https://developer.wordpress.org/reference/hooks/comment_form_defaults/
