Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Ordenar posts por un valor alternativo

Estas en el tema de Ordenar posts por un valor alternativo en el foro de WordPress en Foros del Web. Hola! Tengo un pequeño problema, espero puedan ayudarme. Tengo un blog que estoy construyendo offline y tengo un plugin para votar los posts con pulgar ...
  #1 (permalink)  
Antiguo 01/01/2014, 15:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Ordenar posts por un valor alternativo

Hola! Tengo un pequeño problema, espero puedan ayudarme. Tengo un blog que estoy construyendo offline y tengo un plugin para votar los posts con pulgar arriba, pulgar abajo. Lo que quiero es bastante simple: ordenar los posts por la cantidad de "puntos" que tengan cada uno pero la verdad hasta ahora no he conseguido resolverlo.

Agradezco de antemano la ayuda!
  #2 (permalink)  
Antiguo 01/01/2014, 15:20
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Ordenar posts por un valor alternativo

en tu query utiliza 'orderby' => 'meta_value_num',
  #3 (permalink)  
Antiguo 01/01/2014, 15:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Ordenar posts por un valor alternativo

Gracias ArturoGallegos pero no se mucho del tema. Se mysql pero no se donde esta la query por la cual busca los post como para modificarla.
  #4 (permalink)  
Antiguo 01/01/2014, 15:34
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Ordenar posts por un valor alternativo

si estas trabajando con wordpress lo mejor seria que empezaras a leer la documentacion oficial....

http://codex.wordpress.org/

de momento lo que compete a tu pregunta inicial es esto
http://codex.wordpress.org/The_Loop
  #5 (permalink)  
Antiguo 01/01/2014, 15:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Ordenar posts por un valor alternativo

Gracias ArturoGallegos! Ya habia leido previamente el codex de the loop pero aun no consigo resolverlo. Lo que necesitaria es ordenar los post por el valor "value" de una tabla que tengo que se llama "wp_wti_like_post". Los ids de esta tabla coinciden con los id de los posts.
  #6 (permalink)  
Antiguo 01/01/2014, 16:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Ordenar posts por un valor alternativo

He encontrado la forma de ordenar por meta_key y meta_value pero nada para cuando hay que ordenar por un valor de una tabla distinta a las que maneja wordpress por defecto...
  #7 (permalink)  
Antiguo 01/01/2014, 19:14
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Ordenar posts por un valor alternativo

Si, no contemple que fuera una tabla independiente.... considero que tu mejor opción es realizar una consulta SQL personalizada.

Prueba:
http://codex.wordpress.org/Class_Reference/wpdb
  #8 (permalink)  
Antiguo 02/01/2014, 08:54
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Ordenar posts por un valor alternativo

Si, he probado lo siguiente:
Código PHP:
<?php

 $querystr 
"
    SELECT $wpdb->wp_posts.* 
    FROM $wpdb->wp_posts, $wpdb->wp_wti_like_post
    WHERE $wpdb->wp_posts.ID = $wpdb->wp_wti_like_post.post_id 
    AND $wpdb->wp_posts.post_type = 'post'
    AND $wpdb->wp_posts.post_date < NOW()
    ORDER BY $wpdb->wp_wti_like_post.value DESC
 "
;


 
$pageposts $wpdb->get_results($querystrOBJECT);
 
 
?>

<?php if ($pageposts): ?>
  <?php global $post?>
  <?php foreach ($pageposts as $post): ?>
    <?php setup_postdata($post); ?>

    <div class="post" id="post-<?php the_ID(); ?>">
      <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
      <?php the_title(); ?></a></h2>
      <small><?php the_time('F jS, Y'?> <!-- by <?php the_author() ?> --></small>
      <div class="entry">
         <?php the_content('Read the rest of this entry »'); ?>
      </div>
  
      <p class="postmetadata">Posted in <?php the_category(', '?> | <?php edit_post_link('Edit'''' | '); ?>  
      <?php comments_popup_link('No Comments »''1 Comment »''% Comments »'); ?></p>
    </div>
  <?php endforeach; ?>
  
  <?php else : ?>
    <h2 class="center">Not Found</h2>
    <p class="center">Sorry, but you are looking for something that isn't here.</p>
    
 <?php endif; ?>

</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>
pero no ha funcionado
  #9 (permalink)  
Antiguo 02/01/2014, 09:53
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Ordenar posts por un valor alternativo

intenta colocar global $wpdb; al inicio del todo que has colocado aquí, quedando

Código PHP:
Ver original
  1. <?php
  2. global $wpdb;
  3.  $querystr = "
  4.    SELECT $wpdb->wp_posts.*
  5.    FROM $wpdb->wp_posts, $wpdb->wp_wti_like_post
  6.    WHERE $wpdb->wp_posts.ID = $wpdb->wp_wti_like_post.post_id
  7.    AND $wpdb->wp_posts.post_type = 'post'
  8.    AND $wpdb->wp_posts.post_date < NOW()
  9.    ORDER BY $wpdb->wp_wti_like_post.value DESC
  10. ";
  11.  
  12.  $pageposts = $wpdb->get_results($querystr, OBJECT);
  13.  
  14.  ?>

por otro lado no soy experto en sql pero diría yo que uses JOIN para unir las tablas y relacionarlas.
de lo contrario siento y quiero creer que te esta jalando los datos muy a lo bruto, aunque esto ultimo como te digo no soy experto y no estoy del todo seguro sea así.
  #10 (permalink)  
Antiguo 02/01/2014, 12:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Ordenar posts por un valor alternativo

Gracias ArturoGallegos, he probado con global $wpdb; pero no ha funcionado. La consulta esta bien puesto que la probe en phpMyAdmin y es correcta. Estara en la segunda parte del script el error?
  #11 (permalink)  
Antiguo 04/01/2014, 20:46
Avatar de 23r9i0  
Fecha de Ingreso: noviembre-2008
Ubicación: Catalonia
Mensajes: 203
Antigüedad: 16 años
Puntos: 33
Respuesta: Ordenar posts por un valor alternativo

diria que tu problema esta en que pones el prefijo wp_
mira bien el enlace de wpdb y veras los ejemplos.

Etiquetas: blog, plugin, post, posts, tema, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.