Ordenar posts por último comentado

Inicio Foros WordPress Plugins Ordenar posts por último comentado

Este debate contiene 14 respuestas, tiene 3 mensajes y lo actualizó  LGrusin hace 7 años, 4 meses.

  • Autor
    Publicaciones
  • #21550

    atiquetedeveloper
    Participante

    <p>Hola.</p>
    <p>No tengo demasiada experiencia en PHP, soy más de Java, por lo que quizá esto para una persona que este de manejarlo sea cosa fácil…</p>
    <p>Estoy montando un WordPress con este theme.<br />
    Me interesa que el orden de los posts vaya en función del último comentado, especialmente en el index y cuando se busque por categoría.<br />
    Es decir, si tengo tres posts: A, B y C<br />
    Y ha comentado: A (ayer), B (hoy), C (antes de ayer), el orden al listar en el Loop sea B-A-C.</p>
    <p>He encontrado este hilo y a su vez este plugin, pero no soy capaz a implementarlo en un bucle.</p>
    <p>A ver si alguien me puede echar una mano, porque la desesperación acecha.</p>
    <p>Gracias
    </p>

  • #53122

    Comandante Kaktus
    Participante
  • #53137

    LGrusin
    Miembro

    En el archivo comments.php busca una función llamada wp_list_comments

    Si pones wp_list_comments(‘reverse_top_level=true’); mostrará los últimos comentarios primero.

    Si usas otra función necesitaremos saber el código del archivo comments.php

    Un saludo

  • #53139

    atiquetedeveloper
    Participante

    Muchas gracias por tu respuesta

    No es exactamente lo que busco, la ordenación de comentarios dentro de los posts la tengo controlada.
    Lo que necesitaría es que al entrar en el blog, mediante el bucle en el index.php de posts que existen en Base de Datos, ordene esos posts por el último post que ha sido comentado por un usuario.

    Ejemplo más amplio:
    Post: A
    Publicado: 1 de junio
    Comentado por última vez: 3 de junio

    Post: B
    Publicado: 7 de junio
    Comentado por última vez: 15 de junio

    Post: C
    Publicado: 9 de junio
    Comentado por última vez: 11 de junio

    El orden habitual es que sea por fecha de publicación del post: A-B-C
    Yo querría que al entrar al blog, el orden de los post sea por fecha que ha sido comentado por última vez: A-C-B

  • #53140

    atiquetedeveloper
    Participante

    El plugin que comento, parece hacer esa función que pido, el problema es que no sé cómo hacer uso del código PHP que brinda tras activarlo dentro de WordPress.

    Parece que hay que tocar algo en el index.php y no doy con qué…

  • #53180

    LGrusin
    Miembro

    Perdón, había entendido otra cosa.

    Según la poca documentación del plugin sería poner justo antes de while,

    De esta forma ordenará los posts según el último comentado.

    Lo de paged es para que el visitante puede navegar por los post anteriores. Si sólo quieres posts en una página lo puedes quitar.

    Espero sea eso a lo que refieres.

    Un saludo

  • #53182

    atiquetedeveloper
    Participante

    Muchas gracias de nuevo.

    He incluido la línea que comentas:

    Y parece ignorarla por completo, no ordena en el caso que mencioné como ejemplo; sigue ordenando por fecha de publicación.

    ¿Habría que tocar algo a nivel del propio plugin? Como he comentado, no conozco demasiado la estructura de PHP, pero me extraña que el plugin sea una instancia de una clase.
    ¿Hay alguna forma de saber que está creando correctamente los [i]add_filter()[/i] de[i] function __construct()[/i]?

  • #53185

    LGrusin
    Miembro

    El plugin no me funciona tampoco pero en realidad es que no hace falta plugin para lo que quieres hacer. Ahora lo miro.

    Un saludo

  • #53186

    atiquetedeveloper
    Participante

    Yo sí creo que hace falta plugin o especificarle ampliamente a query_posts lo que quiero, utilizando el “comment_count” funciona perfectamente y ordena por los más comentados, pero en cuanto le preguntas por “orderby_last_comment” nada…

    Con todo lo que puede hacer WordPress y voy a dar con lo más dificil… 🙁

  • #53187

    LGrusin
    Miembro

    orderby_last_comment es un invento del plugin.

    Hay un problema. ¿Qué ocurre cuando los últimos comentarios son del mismo post? Por esta razón no deberían mostrarse muchos post en la misma página. Se podrían mostrar los 8 o 10 últimos post comentados y algunos serán el mismo post. ¿Habías pensado en eso?

    La función a utilizar sería la misma que se usa como widget pero mostrando el post completo o resumido. Pero ya te digo se puede dar el caso de que se repita siempre el mismo post porque los últimos comentarios se realizan en él.

  • #53188

    atiquetedeveloper
    Participante

    El problema que comentas solo se daría en el caso de utilizar la función que se utiliza como widget.

    En el caso del plugin, viendo el código, respetaría que si:
    POST A = Comentado ayer
    POST A = Comentado hoy
    POST B = Comentado antes de ayer

    Se muestre A-B una única vez.

    De hecho, he estado indagando y sería una query tal que:

    Ahora estoy intentando forzar a que se lance esa query para recuperar los posts:

    Pero obtengo errores de tipo: [i]Fatal error: Call to a member function query() on a non-object[/i]

  • #53189

    LGrusin
    Miembro

    Bueno he estado mirando con calma los enlaces y demás, y el plugin si funciona.

    Antes del while:

    Esto hace que se muestre sólo un post y también funciona la paginación.

    OJO, es un punto delante de $paged no una coma. Puedes copiar el código, tal como aparece se copia y pega bien.

    Un saludo

  • #53190

    atiquetedeveloper
    Participante

  • #53191

    atiquetedeveloper
    Participante

    Jod*er, funciona a la perfección… Al final era la tontería del =1…

    Muchísimas gracias, si eres asturiano te pago unas cañas cuando haga falta

  • #53192

    LGrusin
    Miembro

    Bien recibidas serían con el calorcito … 😉
    No soy asturiano pero tomo nota…

    Saludos

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

Pin It on Pinterest