El mejor enfoque para crear secciones de actualidad y tendencias

2

Voy a implementar una sección de tendencias y tendencias en un sitio web. He visto esas secciones en muchos sitios web populares, pero realmente no puedo entender cómo funciona esto exactamente.

Aunque asumí que Hot section son las publicaciones más populares (basadas en las vistas de publicaciones) que desarrollé con un WP_Query personalizado. Y funciona.

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'meta_key' => 'post_views',
    'orderby' => 'meta_value_num',
    'ignore_sticky_posts' => 1,
    'paged' => $paged,
);
$hot_query = new WP_Query( $args );

Pero estoy atascado en Trending section . ¿Cuál es exactamente la idea detrás de esto para crear una consulta personalizada?

Quiero saber cuál es el mejor enfoque para obtener contenido en cada sección. Intenté buscar en Google durante un par de días, pero realmente no encontré nada útil.

EDIT

Mi función de visualización de publicaciones.

function set_post_views( $postID ) {
  if ( is_singular() ) {
    $count_key = 'post_views';
    $count = get_post_meta( $postID, $count_key, true );
    if ( $count=='' ) {
      $count = 0;
      delete_post_meta( $postID, $count_key );
      add_post_meta( $postID, $count_key, '0' );
    } else {
      $count++;
      update_post_meta( $postID, $count_key, $count );
    }
  }
}
    
pregunta Robert hue 02.01.2015 - 06:36

5 respuestas

3

En mi opinión personal, esto puede generar un poco de recursos, por lo que necesitará implementar algún tipo de sistema de caché, o incluso mirar transitorio

Lo que quieres hacer es ampliar tu función de vista de publicación actual o incluso crear una en el lateral para esto. Desearía capturar cada vista dos veces, una para la vista de página normal como lo está haciendo actualmente ( $count_key ) y, en segundo lugar, para una función de vista personalizada usando quizás $custom_count_key

Ahora, así es como funcionaría $custom_count_key :

  • Se registra una vista de página cuando la página (publicación) se visita según lo normal

  • Este campo se limpia (todos los datos se eliminan) diariamente / semanalmente / etc, según cómo desee definir su Trending section . De nuevo, esto establecería el valor en 0 al comienzo de un nuevo día / semana / etc

Lo que necesitarás hacer:

  • Como se indicó, amplíe o escriba otra función de vista de página para almacenar vistas diarias / semanales / etc.

  • Cree una función que se ejecutará a una hora específica diaria / semanal / etc (cualquier suite que mejor se adapte a sus necesidades) que eliminará / eliminará los valores de ese meta campo.

  • Cree su consulta personalizada para consultar una cantidad x de publicaciones que tenga la mayor cantidad de vistas para el día / semana / etc específico. Las publicaciones recuperadas por esta consulta diferirán a lo largo del día / semana / etc, ya que las visitas de cada publicación aumentan debido a las visitas a la página.

  • También puede guardar los resultados de un día / semana / etc en la base de datos para futuras consultas antes de eliminar / borrar los valores actuales al final de ese día / semana / etc específico, pero eso es hasta usted e incluso podría ser solo una pérdida de tiempo y espacio

Esta es solo una idea básica que puedes usar. No estoy en posición de codificar algo como esto ahora, pero sería muy bueno si utilizas esta idea para publicar tu solución de trabajo final para esto

Buena suerte y todo lo mejor en este proyecto

    
respondido por el Pieter Goosen 03.01.2015 - 05:31
2

La idea típica detrás de la tendencia es el contenido que es popular en el corto período de tiempo reciente. Si solo está capturando las vistas totales de publicaciones para el contenido, es probable que no tenga datos para implementarlo.

Por ejemplo:

  • La publicación A tiene 100 días de antigüedad, tuvo un total de 100K visitas, alrededor de 1K vistas por día.
  • La publicación B tiene 10 días de antigüedad, tuvo 10K visitas, 8K de ellas en el último día.

A es popular desde hace mucho tiempo, pero B tiene una tendencia en este momento (aunque antes tenía niveles de tráfico diarios y todos los tiempos más bajos que A).

Debería poder decir el valor "variable", no solo las vistas en el tiempo de vida de la publicación, sino cómo se distribuyeron esas vistas en el tiempo (con un nivel de precisión aceptable).

    
respondido por el Rarst 02.01.2015 - 17:39
0

La tendencia se realiza usando entre dos valores,

Ejemplo

  • valor meta de las vistas de publicación > = 1000
  • Y el otro valor meta de la vista de publicación = < 3000

Y la página caliente

  • Valor meta = > 3001.

No puedo publicar el código ahora soy de móvil, Utilicé esto en mi sitio de cómics

    
respondido por el Shady M Rasmy 02.01.2015 - 06:47
0

Como dijo @cybmeta ... Puedes definir las tendencias como quieras. Pero creo que deberías considerar usar el valor de Social shares para las publicaciones de tendencias. Si utiliza algún complemento de Social Share, puede extraer el valor desde allí.

    
respondido por el rafsuntaskin 02.01.2015 - 17:57
0

consulta de página de tendencias

$today = getdate();
$args = array(
          'meta_key'     => 'post_views',
          'meta_value'   => '1000',
          'meta_compare' => '>=',
          'orderby'    => 'meta_value_num',
          'ignore_sticky_posts' => 1,
          'paged' => $paged,
          'date_query' => array(
                array(
                        'year'  => $today['year'],
                        'month' => $today['mon'],
                         'day'   => $today['mday'],
    ),
),
);
$trenquery = new WP_Query( $args );

la consulta de la página activa debe ser la misma pero el valor meta de 3000 o más. Este código es tendencia HOY. Este código se ha probado en mi sitio y está funcionando, y también lo agregué por semana y por mes y todo el tiempo

    
respondido por el Shady M Rasmy 03.01.2015 - 01:12

Lea otras preguntas en las etiquetas