Explicaré lo que estoy tratando de lograr.
Me gustaría tener comentarios regulares sin hilos (planos / clásicos) con un enlace de respuesta a cada comentario. Cuando alguien responde a un comentario, el comentario de respuesta terminará en la parte superior (o inferior) como el último comentario tal como lo haría en los comentarios sin hilos predeterminados, pero a diferencia del comentario sin hilos predeterminado, la respuesta debe mostrar un enlace a El comentario original / autor.
Hay una solución propuesta en el foro de WordPress:
http://wordpress.org/support/topic/reply-to-link-for-chronological-non-threaded-comments
Simplemente no lo hago funcionar. No estoy seguro de en qué archivos está colocando el póster las diferentes piezas de código. Intenté usar el código y enganchar una función para comment_post:
add_action('comment_post', 'print_reply_link', 10, 2);
function print_reply_link( $comment_id, $approved ){
if( $approved ){
$comment = get_comment( $comment_id );
if ( $comment->comment_parent ) {
$parent = get_comment( $comment->comment_parent );
$parent_link = esc_url( get_comment_link( $comment->comment_parent ) );
printf( ' in reply to <a href="%1$s">%2$s</a>', $parent_link, $parent->comment_author );
}
}
}
Esto devolvió una página en blanco con "en respuesta al nombre del autor ". Después de volver a cargar la publicación, aparece un comentario de respuesta correctamente pero sin ningún enlace al comentario original
Mis habilidades de codificación son realmente muy básicas, así que no tengo una buena idea de cómo debo proceder. Estaría muy agradecido por cualquier ayuda.
href
en ela
siguiente 'en respuesta a' según la herramienta 'Inspeccionar elemento' en Chrome (o similar en su navegador de elección)?s
en%1$s
los medios que el argumento es tratado y presentado como una cadena. Esto se explica en detalle en el manual de php para la función sprintf: php.net/manual/en/function.sprintf.phpRespuestas:
Esta es mi solución y no la solución propuesta sugerida en los foros de WordPress. Resulta ser bastante fácil, pero implica unos pocos pasos.
1) Vaya a wp-admin-> Configuración-> Discusión y apague los comentarios enhebrados. Esto deshabilitará el enhebrado, lo que queremos, pero también eliminará la capacidad de "responder" a un comentario en particular. Tenemos que volver a poner eso.
2) Agregue el script a continuación a las funciones de su tema.php o a un complemento.
3) La impresión de los comentarios se maneja mediante una devolución de llamada a wp_list_comments . TwentyEleven utiliza la función
twentyeleven_comment()
en sufunctions.php
. Si su tema no tiene una devolución de llamada, deberá crear uno. Por defecto, se utiliza el contenido del método start_el de la clase Walker_Comment en "wp-includes / comment-template.php". Copie eso o copie la devolución de llamada del tema y cambie el nombre de la función afake_threaded_comment
.3) Busque la función wp_list_comments en su tema
comments.php
y cambie la devolución de llamada. Debería verse así:4) Ahora vamos a hacer trampa un poco. En esa devolución de llamada, 'fake_threaded_comment', debería haber una llamada a la función comment_reply_link . Necesitamos editarlo para que pasemos los argumentos codificados de 'profundidad' y 'max_depth'. Estamos configurando 'profundidad' en 1 y max_depth en 2. Esto obtendrá nuestro botón / enlace "Responder".
5) Configure el enlace al comentario principal. Al lado de la función de devolución de llamada, puede haber notado referencias
$comment
.$comment->comment_parent
es el ID del comentario respondido yget_comment_link($comment->comment_parent)
proporciona la URL del comentario primario (no el marcado de anclaje completo).get_comment($comment->comment_parent)
obtendrá los datos del comentario principal. Entonces, algo así como ...Eso es. Ahora puede comentar comentarios particulares, pero una vez publicado, el comentario aparecerá al final o al principio de la lista de comentarios, según el orden de carga.
Probado con TwentyEleven en WordPress 3.4.1 (un poco desactualizado pero ya está en mi servidor de desarrollo). Estoy seguro de que hay cosas que los temas o complementos podrían hacer para romper esto, pero no creo que un tema o complemento con buen comportamiento lo rompa.
Esa es mi buena acción del día. Avísame si algo sale mal.
fuente