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

Filtrar posts por permalink

Estas en el tema de Filtrar posts por permalink en el foro de WordPress en Foros del Web. Saludos señores, espero me puedan ayudar, Estoy integrando una función que obtiene de Google Analytics los post más leidos, sin embargo al momento de hacer ...
  #1 (permalink)  
Antiguo 27/04/2011, 11:12
Avatar de netovs  
Fecha de Ingreso: enero-2010
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 9
Pregunta Filtrar posts por permalink

Saludos señores, espero me puedan ayudar,

Estoy integrando una función que obtiene de Google Analytics los post más leidos, sin embargo al momento de hacer los links necesito hacer el query post para integrar elementos como el excrept y la imagen relacionada SIN EMBARGO de Google Analytics solo obtengo el permalink

¿Saben de alguna forma de poder hacer el query en base al permalink?

algo así como:

Código PHP:
Ver original
  1. $argumentos = array('post__not_in'  => $ids, 'posts_per_page'=> $post_a_mostrar_flock, 'permalink' => 'http://mipagina.com/categoria/tema/' );
  2. query_posts($argumentos);

Muchas gracias por su atención.
__________________
No por que a mi nadie me ayudo a aprender a programar yo no les voy a ayudar ...

Comunicación Web
  #2 (permalink)  
Antiguo 27/04/2011, 20:17
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Filtrar posts por permalink

Hazlo por ids de los posts... puedes sacar el id por el permalink con la función url_to_postid de wordpress:

Código:
<?php echo url_to_postid('URL'); ?>
y ya luego obtienes los ids y haces el query por ID.
  #3 (permalink)  
Antiguo 27/04/2011, 20:33
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Respuesta: Filtrar posts por permalink

codig0, oh que curiosa función.

netovs, puedes probar buscando solo el post-slug en la base de datos... sería un tanto menos pesado que la función que comenta codig0.
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #4 (permalink)  
Antiguo 28/04/2011, 06:59
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Filtrar posts por permalink

Cita:
Iniciado por j_aroche Ver Mensaje
codig0, oh que curiosa función.

netovs, puedes probar buscando solo el post-slug en la base de datos... sería un tanto menos pesado que la función que comenta codig0.
¿post-slug?

Si te refieres a la tabla post_name, ésta -como todas las demás- ya están incluidas en la consulta que hace el loop.

Todo lo que esté relacionado con acciones selectivas entre posts debe hacerse dentro del loop. Caso contrario sería ejecutar la misma consulta dos veces.

En el caso de netovs, debe hacer su consulta de forma normal, con el detalle de que esos resultados serán comparados con los de una fuente externa.

La idea de codig0 es la mejor opción porque se obtienen las ID's de forma directa y no hay que darle muchas vueltas al asunto (muy bien codig0):

Código PHP:
Ver original
  1. $import = array('el array de URLS que sacas de Analytics');
  2.  
  3. foreach($import as $imp) {
  4.     $id = url_to_postid($imp);
  5.     $entradas = get_post($id);
  6.     $resultado .= '<li><a href="'. get_permalink($entradas->ID) .'">'. $entradas->post_title .'</a></li>';
  7. }
  8.  
  9. echo $resultado;

Otra opción, aparentemente más grande pero -a mi parecer- distribuye un poquito mejor el trabajo de background entre PHP y la BD:

Código PHP:
Ver original
  1. $import = array('el array de URLs que sacas de Analytics');
  2.  
  3. $mis_entradas = new WP_Query(array(
  4.     'parametros' => 'etc'
  5. ));
  6.  
  7. while ($mis_entradas->have_posts()) {
  8.     $mis_entradas->the_post();
  9.  
  10.     foreach($import as $imp)
  11.         if(get_permalink() != $imp) continue; // Aquí se descarta los que no van
  12.  
  13.     $resultado .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
  14. }
  15.  
  16. echo $resultado;
Ahí se empleó WP_Query directamente (lo uso para evitar conflictos cuando se hacen varios en una misma página) pero igual funciona con query_posts() y get_posts().
  #5 (permalink)  
Antiguo 11/05/2011, 23:22
Avatar de netovs  
Fecha de Ingreso: enero-2010
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 9
Exclamación Respuesta: Filtrar posts por permalink

Cita:
Iniciado por codig0 Ver Mensaje
Hazlo por ids de los posts... puedes sacar el id por el permalink con la función url_to_postid de wordpress:

Código:
<?php echo url_to_postid('URL'); ?>
y ya luego obtienes los ids y haces el query por ID.
Señor permitame repetir un montón de veces:

Código PHP:
Ver original
  1. for($i = 1; $i <=100000; $i++)
  2. {
  3.  echo 'MUY AGRADECIDO <br>';
  4. }

Y compartir de los polvos mágicos de foros del web
__________________
No por que a mi nadie me ayudo a aprender a programar yo no les voy a ayudar ...

Comunicación Web
  #6 (permalink)  
Antiguo 11/05/2011, 23:25
Avatar de netovs  
Fecha de Ingreso: enero-2010
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: Filtrar posts por permalink

Cita:
Iniciado por metacortex Ver Mensaje
¿post-slug?

Si te refieres a la tabla post_name, ésta -como todas las demás- ya están incluidas en la consulta que hace el loop.

Todo lo que esté relacionado con acciones selectivas entre posts debe hacerse dentro del loop. Caso contrario sería ejecutar la misma consulta dos veces.

En el caso de netovs, debe hacer su consulta de forma normal, con el detalle de que esos resultados serán comparados con los de una fuente externa.

La idea de codig0 es la mejor opción porque se obtienen las ID's de forma directa y no hay que darle muchas vueltas al asunto (muy bien codig0):

Código PHP:
Ver original
  1. $import = array('el array de URLS que sacas de Analytics');
  2.  
  3. foreach($import as $imp) {
  4.     $id = url_to_postid($imp);
  5.     $entradas = get_post($id);
  6.     $resultado .= '<li><a href="'. get_permalink($entradas->ID) .'">'. $entradas->post_title .'</a></li>';
  7. }
  8.  
  9. echo $resultado;

Otra opción, aparentemente más grande pero -a mi parecer- distribuye un poquito mejor el trabajo de background entre PHP y la BD:

Código PHP:
Ver original
  1. $import = array('el array de URLs que sacas de Analytics');
  2.  
  3. $mis_entradas = new WP_Query(array(
  4.     'parametros' => 'etc'
  5. ));
  6.  
  7. while ($mis_entradas->have_posts()) {
  8.     $mis_entradas->the_post();
  9.  
  10.     foreach($import as $imp)
  11.         if(get_permalink() != $imp) continue; // Aquí se descarta los que no van
  12.  
  13.     $resultado .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
  14. }
  15.  
  16. echo $resultado;
Ahí se empleó WP_Query directamente (lo uso para evitar conflictos cuando se hacen varios en una misma página) pero igual funciona con query_posts() y get_posts().


Como no se donde se comparte eso del karma en los foros del web permitame repetir un montón de veces:

Código PHP:
Ver original
  1. for($i = 1; $i <=100000; $i++)
  2. {
  3.  echo 'MUY AGRADECIDO <br>';
  4. }

Y compartir de los polvos mágicos de foros del web
__________________
No por que a mi nadie me ayudo a aprender a programar yo no les voy a ayudar ...

Comunicación Web

Etiquetas: filtrar, permalink, post
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 18:00.