Error en los comentarios

Inicio Foros WordPress Programación Error en los comentarios

Etiquetado: , ,

Este debate contiene 17 respuestas, tiene 3 mensajes y lo actualizó  Josus hace 6 años, 10 meses.

  • Autor
    Publicaciones
  • #23578

    Josus
    Participante

    <p>Buenas.<br />
    Soy nuevo en el foro, como podréis comprobar por el número de comentarios.<br />
    Desde hace tiempo tengo un error en el WP cuando alguien me escribe un comentario, y los he tenido de deshabilitar. En concreto, el error que sale es este:</p>
    <p>Warning: call_user_func(mytheme_comment) [function.call-user-func]: First argument is expected to be a valid callback in /home/jrhyoeuw/public_html/joseramongarcia/wp-includes/comment-template.php on line 1334</p>
    <p>Alguien me puede decir como solucionarlo?<br />
    Muchísimas gracias.
    </p>

  • #58618

    almendron
    Participante

    El tema que usas, si no estoy equivocado, es de pago: ¿has contactado con el diseñador?

    En cualquier caso, el error parece localizarse en la función que devuelve los comentarios. En la mayoría de los temas ese código está en el archivo functions.php.

    ¿Has modificado ese archivo?

    Nota: Es complicado dar una respuesta más concreta al no poder descargar el tema y probarlo en local.

    Edito: usas la versión 1.9 del tema y la más actual es la 2.9. Tal vez actualizando el tema se resuelva el problema.

  • #58619

    Josus
    Participante

    El tema lo tengo yo, y si lo necesitas lo puedo subir a un http://FTP….

  • #58621

    LGrusin
    Miembro

    Puede deberse a algún error del theme. Prueba con otro para salir de dudas.

    Un saludo

  • #58622

    almendron
    Participante

    Estaba justo editando cuando has respondido. Lo vuelvo a poner:

    Usas la versión 1.9 del tema y la más actual es la 2.9. Tal vez actualizando el tema se resuelva el problema.

    Si no has personalizado el tema o es sencillo volver a hacer los cambios, lo mejor es actualizarlo.

    Ya me dirás si optas por esta solución.

  • #58620

    Josus
    Participante

    El tema lo he modificado a mi gusto, en cuanto anchos y demás, y si lo actualizo puede que lo pierda todo.
    Además, el tema me lo pasó un amigo que tenía cuenta de pago en la página de esos themes, pero ahora ya no la tiene, y no lo podría actualizar.
    La cuestión es que yo creo que es un fallo menor. Exactamente lo que pone la línea 1334 es : call_user_func($args[‘callback’], $comment, $args, $depth);

    Por cierto, muchas gracias por el interés y la ayuda.

  • #58623

    LGrusin
    Miembro

    A ver, el error no está en ese archivo sino en la función que lo llama desde un archivo de tu theme.

    Un saludo

  • #58624

    almendron
    Participante

    Pues entonces sube el tema para que podamos descargarlo e intentaré echarle un vistazo esta tarde a última hora. No prometo nada porque los temas de pago suelen ser bastante complicados, pero lo intentaré.

  • #58625

    LGrusin
    Miembro

    almendron vamos a tener que inventar un sistema para no “pisarnos” las respuestas… 😉

    .. y sobre que los themes de pago son complicados yo diría más bien que son antipáticos. A veces creo que están realizados con mala idea… Pero entre todos igual damos con el desaguisado.

    Un saludo

  • #58628

    almendron
    Participante

    Pues sí, LGrusin 🙂

    Y sí, son antipáticos de narices. Me estoy bajando la versión 3.1 del tema e intentaré sustituir la función con la de la nueva versión.

  • #58630

    Josus
    Participante

    Lo he subido aquí: http://www.joseramongarcia.es/wp.zip
    Cuando lo descargues avisa que lo borro.

    Muchas gracias a los dos!

  • #58633

    almendron
    Participante

    Descargado. Ya lo puedes quitar.

  • #58643

    almendron
    Participante

    Creo que he encontrado el problema. Veamos: en el archivo [b]comments.php[/b] (es el que se encuentra en la raíz de la carpeta del tema) tienes una llamada a los comentarios

    <?php wp_list_comments(array('type'=>'comment','callback'=>'mytheme_comment','avatar_size'=>50, 'reply_text'=>'Reply')); ?>

    Lo normal es que la función mytheme_comment estuviera en el archivo includes/functions/comments.php, pero resulta que no estaba (ni en ningún otro archivo) y de ahí que de error. En su lugar me he encontrado con la función et_custom_comments_display.

    La solución, por tanto, es sustituir en la línea que he puesto antes la función mytheme_comment por et_custom_comments_display. Quedaría así:

    <?php wp_list_comments(array('type'=>'comment','callback'=>'et_custom_comments_display','avatar_size'=>50, 'reply_text'=>'Reply')); ?>

    Lo he probado en local y no arroja ningún error. NO obstante, comprueba que funciona bien.

    EDITO: las líneas de código que he puesto quedan cortadas. Para que lo veas mejor:

    Sustituye

    'callback'=>'mytheme_comment'

    por

    'callback'=>'et_custom_comments_display'

  • #58663

    LGrusin
    Miembro

    Me pareció que también falta la de los pingbacks list_pings, pero ya es un problema menor.

    Saludos

  • #58671

    almendron
    Participante

    Es que ni siquiera existe la función. Ni esa ni et_list_pings. De todas formas, se podría usar el código de la versión más nueva. No lo he probado pero creo que funcionara sin problemas:

    Archivo functions.php. Busca la línea require_once(TEMPLATEPATH . '/epanel/post_thumbnails_deepfocus.php'); y añades justo después:

    function list_pings($comment, $args, $depth) {
    $GLOBALS['comment'] = $comment;
    ?>
    <li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?> - <?php comment_excerpt(); ?>
    <?php
    }

  • #58685

    Josus
    Participante

    Muchísimas gracias por vuestra ayuda.
    Lo acabo de modificar y ya funciona correctamente.

    Que tengáis feliz año!!!

  • #58688

    almendron
    Participante

    De nada. Y por favor, marca el hilo como solucionado.

  • #58689

    Josus
    Participante

    Ya está. Gracias de nuevo.

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest