Masterización WP_Comment_Query

Ya casi estamos llegando al final de nuestra serie, "Masterización WP_Query", y es hora de presentar a los hermanos de la WP_Query clase. En la parte anterior, repasamos WP_User_Query, y en este artículo, vamos a aprender sobre el WP_Comment_Query clase.

Vamos a empezar!

¿Qué es WP_Comment_Query??

Introducido en WordPress versión 3.1, el WP_Comment_Query La clase hace casi todo el trabajo pesado en la consulta de comentarios en WordPress. Permite la consulta de dos tablas de bases de datos., wp_comments y wp_commentmeta, en esencia.

Aquí esta la esqueleto de un bucle de consulta de comentarios utilizando la WP_Comment_Query clase:

consulta ($ args); if ($ comments) foreach ($ comments as $ comment) // Haz lo que haces para cada comentario aquí.  else else // Mostrar mensaje porque no hay comentarios. ?>

Bastante fácil, ¿verdad? Podremos hacer un ejemplo unos pocos pasos después, pero veamos primero debajo del capó..

Propiedades y métodos de la clase WP_Comment_Query

Como no hay muchas propiedades (variables públicas de la clase) y métodos (funciones públicas de la clase), las repasaré rápidamente en dos mini secciones. Aquí vamos!

Propiedades de WP_Comment_Query

diferente a WP_Query que tiene más de 30 propiedades (25 de las cuales son equivalentes para las Etiquetas Condicionales), el WP_Comment_Query La clase tiene solo cinco propiedades:

  • $ solicitud: Una cadena que contiene la consulta SQL.
  • $ meta_query: Una matriz para hacer una "meta consulta" con la ayuda de WP_Meta_Query clase.
  • $ date_query: Una matriz para realizar una "consulta de fecha" con la ayuda de WP_Date_Query clase.
  • $ query_vars: Una matriz de las variables de la consulta..
  • $ comentarios: Una matriz de comentarios obtenidos con la consulta.

El único método de WP_Comment_Query

Sí, solo hay un método para usar con el WP_Comment_Query clase, y el nombre de ese método es consulta().

los consulta() el método básicamente ejecuta la consulta, utilizando los parámetros que veremos en la siguiente sección; pero veamos qué obtenemos en una matriz cuando usamos este método:

  • comentario_ID: El ID del comentario.
  • comment_post_ID: El ID de la publicación a la que se hace el comentario..
  • comentar_autor: El comentario del autor del nombre.
  • comment_author_email: La dirección de correo electrónico del autor del comentario..
  • comment_author_url: La URL del sitio web del autor del comentario.
  • comment_author_IP: La dirección IP del comentario.
  • comentario_fecha: La fecha de comentario.
  • comment_date_gmt: El comentario en formato horario GMT..
  • comentario_contenido: El contenido del comentario..
  • comment_karma: Un campo de base de datos no utilizado para cada comentario-plugins puede usar esto para almacenar, bueno, el karma del comentario.
  • comentario_aprobado: El estado de aprobación del comentario..
  • comentario_agente: El usuario agente del comentario..
  • tipo_comentarios: El tipo de comentario si es un pingback o un rastrear.
  • comentario_parente: Para comentarios anidados, este es el ID del comentario principal. Si es el comentario de nivel superior, esto será 0.
  • user_id: 0 Si el autor del comentario no está registrado en el sitio web, el ID del usuario de lo contrario.

Veamos los parámetros de la WP_Comment_Query clase ahora.

Parámetros de la clase WP_Comment_Query

Hay 34 parámetros que podemos usar con WP_Comment_Query, pero no dejes que te asusten: ya puedes reconocerlos por sus nombres, y los otros son igualmente fáciles de explicar y usar.

  • author_email (cadena): Dirección de correo electrónico del autor del comentario.
  • autor__in (matriz): ID de autor para incluir en la consulta.
  • author__not_in (matriz): ID de autor para excluir de la consulta.
  • post_author__in (array): igual que autor__in.
  • post_author__not_in (array): igual que author__not_in.
  • include_unapproved (matriz): una matriz de ID de usuario o direcciones de correo electrónico cuyos comentarios deben devolverse independientemente de su estado de aprobación.
  • campos (cadena): campos de comentarios para devolver. Acepta 'ids' solo, se utiliza para devolver solo las ID de comentario.
  • comentar (matriz): ID de comentario para incluir en la consulta.
  • comment__not_in (matriz): ID de comentario para excluir de la consulta.
  • karma (entero): la puntuación de "karma" para devolver los comentarios coincidentes para. (Recuerda comment_karma de la sección anterior?)
  • número (entero): el número máximo de comentarios a devolver.
  • compensar (entero): el número de comentarios a pasar en la consulta.
  • orden por (cadena o matriz): un estado de comentario o una matriz de estados para ordenar los resultados de la consulta. Acepta todas las claves devueltas desde el consulta() método, más 'meta_valor', 'meta_value_num', valor de $ meta_key, FALSO, matriz vacía o 'ninguna'. (Los tres últimos desactivan el ORDEN POR cláusula en la consulta.)
  • orden (cadena): Cómo ordenar los comentarios recuperados-'ASC' para ascender o 'DESC' para descender. (Defecto: 'DESC')
  • padre (entero): ID de comentario del padre para recuperar hijos.
  • ID del mensaje (entero): ID de publicación para recuperar comentarios. (Defecto: 0)
  • publicar (matriz): ID de publicación para incluir en los resultados.
  • post__not_in (matriz): ID de publicación para excluir de los resultados.
  • post_autor (entero): Publicar ID de autor para limitar los resultados por.
  • Nombre del puesto (cadena): Post slug para obtener comentarios de.
  • post_parente (entero): ID de la publicación principal para obtener comentarios de.
  • tipo de mensaje (cadena): Tipo de publicación para obtener comentarios de.
  • post_status (cadena): Estado de publicación para obtener comentarios de.
  • estado (cadena): estado del comentario para limitar los resultados por. Acepta 'sostener', 'aprobar', 'todos' o un estado de comentario personalizado. (Defecto: 'todos')
  • tipo (cadena o matriz): un tipo de comentario o una matriz de tipos de comentarios para filtrar la consulta. Acepta 'comentario', 'pings' (es decir, pingbacks y trackbacks combinados), o tipos de comentarios personalizados.
  • escribir (matriz): tipos de comentarios para incluir en la consulta.
  • tipo__not_in (matriz): tipos de comentarios para excluir de la consulta.
  • user_id (entero): ID de usuario para incluir comentarios de un usuario específico.
  • buscar (cadena): Buscar términos para obtener comentarios coincidentes para.
  • contar (booleano): devuelve el recuento de comentarios (CIERTO) o una serie de comentarios (FALSO). (Defecto: FALSO)
  • meta_key (cadena): una clave meta personalizada para incluir solo los comentarios coincidentes.
  • meta_valor (cadena): un valor meta personalizado para incluir solo comentarios coincidentes.
  • meta_query (matriz): una matriz de WP_Meta_Query cláusulas (que veremos en la siguiente parte de esta serie).
  • date_query (matriz): una matriz de WP_Date_Query Cláusulas (que veremos en la siguiente parte de esta serie). (Defecto: NULO)

Nota: Los valores predeterminados de todos los parámetros están vacíos, a menos que se indique lo contrario arriba.

Un ejemplo rápido para entender cómo funciona WP_Comment_Query

No se sentiría como un completar tutorial si no vimos cómo funciona, ¿verdad? Pensemos en un escenario simple y hagamos un ejemplo rápido, entonces.

Supongamos que va a enumerar los comentarios realizados por el autor de la publicación y ordenarlos por ID de comentarios (en lugar de fechas de comentarios). Esto es lo que haces:

post-> post_author; // Instalar argumentos. $ args = array ('user_id' => $ post_author_id, 'orderby' => 'comment_ID'); // Consulta de comentarios personalizados. $ my_comment_query = new WP_Comment_Query; $ comments = $ my_comment_query-> query ($ args); // Compruebe si hay comentarios. if ($ comments) // Comenzar a listar comentarios. eco '
    '; // Loop sobre comentarios. foreach ($ comentarios como $ comentario) echo '
  • '. $ comentario-> comentario_contenido. '
  • '; // Deja de enumerar comentarios. eco '
'; else // Mostrar mensaje si no se encuentran comentarios. eco '

'. __ ('El autor de la publicación no ha publicado ningún comentario.', 'Tutsplus'). '

'; ?>

Consejo rapido: Si desea crear consultas de comentarios pero desea usar una GUI en lugar de escribir código, puede usar GenerateWP's WP_Comment_Query Generador.

Envolviendo todo

Como dije, estamos llegando al final de esta serie. En la siguiente parte, vamos a aprender sobre el WP_Meta_Query y WP_Date_Query clases juntas.

¿Tienes algo que añadir a este artículo? Comparte tus pensamientos con nosotros en la sección de Comentarios a continuación. Y si te gustó el artículo, no olvides compartirlo con tus amigos..

Si está interesado en algunos scripts y complementos que le pueden dar una funcionalidad más avanzada con su sistema de comentarios, hay una colección útil de artículos en Envato Market..