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

wp_get_recent_posts() me muestra todos los post, incluso los draft

Estas en el tema de wp_get_recent_posts() me muestra todos los post, incluso los draft en el foro de WordPress en Foros del Web. Hola, tengo este código para mostrar los últimos post @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $recent_posts = wp_get_recent_posts ( 7 ) ; foreach ( ...
  #1 (permalink)  
Antiguo 16/12/2010, 11:52
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
wp_get_recent_posts() me muestra todos los post, incluso los draft

Hola, tengo este código para mostrar los últimos post
Código PHP:
Ver original
  1. <?php
  2. $recent_posts = wp_get_recent_posts(7);
  3. foreach($recent_posts as $post):
  4. echo '<li><a href="' . get_permalink($post["ID"]) . '" title="Look '.$post["post_title"].'" >' .   $post["post_title"].'</a> </li> ';
  5. endforeach;
  6. ?>
Pero el asunto es que me muestra todos, incluso los que tengo en draft, miré la función wp_get_recent_post() a ver si tenía la opción de mostrar solo los que están públicos, pero no. Intenté también hacer algo con get_posts() pero no funcionó...

¿Alguna solución para esto? por ahora tengo mis draft en la trash

Gracias de antemano...
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #2 (permalink)  
Antiguo 16/12/2010, 12:21
 
Fecha de Ingreso: julio-2009
Ubicación: Argentinalandia
Mensajes: 339
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

quieres mostrar una serie de ultimos post?
a ver si te sirve esta idea..
tengo una secciones en un wp de un cliente en el que muestro el post 12, 13, y 14 contando hacia atras desde la ultima publicación. si fueran los post 1, 2 y 3 (en cambio de los anteriores mencionados) seria el ultimo, el penultimo y el ante-penultimo.

el codigo que utilizo es asi:
Código PHP:
            <div id="module-03">
                <!-- Start Module 03 -->
                <div class="module-03-left">
                    <?php if ( $hometitle3 get_option('stylewp_hometitle3') ) { ?>
                    <h4 class="extra"><?php $hometitle3 get_option('stylewp_hometitle3'); echo stripslashes($hometitle3); ?>
                    »</h4>
                    <?php } else { ?><?php ?><?php $my_query = new WP_Query('showposts=1&offset=12'); ?>
                    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <div style="float: left; padding: 0px 0px 5px 0px; margin: 0px 0px 0px 0px;">
                        <?php vz_inloop(190,'','Continuar Leyendo'); ?></div>
                    <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
                    </a></h5>
                    <?php wswwpx_content_extract ' '2044 ); ?><?php endwhile; ?>
                </div>
                <div class="module-03-middle">
                    <?php if ( $hometitle3 get_option('stylewp_hometitle3') ) { ?>
                    <h4 class="extra">&nbsp;</h4>
                    <?php } else { ?><?php ?><?php $my_query = new WP_Query('showposts=1&offset=13'); ?>
                    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <div style="float: left; padding: 0px 0px 5px 0px; margin: 0px 0px 0px 0px;">
                        <?php vz_inloop(190,'','Continuar Leyendo'); ?></div>
                    <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
                    </a></h5>
                    <?php wswwpx_content_extract ' '2044 ); ?><?php endwhile; ?>
                </div>
                <div class="module-03-right">
                    <?php if ( $hometitle3 get_option('stylewp_hometitle3') ) { ?>
                    <h4 class="extra">&nbsp;</h4>
                    <?php } else { ?><?php ?><?php $my_query = new WP_Query('showposts=1&offset=14'); ?>
                    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <div style="float: left; padding: 0px 0px 5px 0px; margin: 0px 0px 0px 0px;">
                        <?php vz_inloop(190,'','Continuar Leyendo'); ?></div>
                    <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?>
                    </a></h5>
                    <?php wswwpx_content_extract ' '2044 ); ?><?php endwhile; ?>
                </div>
            </div>
tendrás que sacar un par de detalles del css por si te confunde el diseño, pero básicamente esa es la idea. Fijate donde dice:

Código PHP:
<?php } else { ?><?php ?><?php $my_query = new WP_Query('showposts=1&offset=13'); ?>
mas precisamente en &offset=13 que es lo que utilizo para decirle que me muestre el post numero 13 (contando desde el ultimo publicado hacia los mas viejos)
cambia este numero por el que desees...

lo util de esto no pasa solo por que puedes saltear y ordenar a gusto, por ejemplo 1, 3, y 2, sino tambien porque puedes adaptar cada noticia en un css particular y asi poder lograr un bloque grande y ancho con un post y dos post de la mitad del anterior debajo del anterior. EXTREMADAMENTE util para diseños ademas de que puedes aplicar reglas propias como mostrar cierta cantidad de caracteres al texto introductorio o las imágenes de tal color o texto de tal tamaño etc etc

Espero que sirva de algo... Salu2 =)

p.s.: offset tambien es combinable con categorías por si te interesa, cosa que puedas mostrar el antepenultimo post pero de determinada categoria
__________________
Mi Perfil y Blog estan en Yeow.com.ar ✰✰✰✰✰
Pero en WONDED.COM estan Mis Proyectos OpenSource ;-)
  #3 (permalink)  
Antiguo 16/12/2010, 12:45
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

rogertm, según lo que explicas quizás tengas algún plugin "saboteador" mal programado. En condiciones normales eso no debería suceder.
  #4 (permalink)  
Antiguo 16/12/2010, 13:25
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Uufff... @pleter, tu solución no creo que sea óptima para lo que quiero, es sencillamente mostrar los último 'n' post en un bloque, fíjate en el footer de mi blog http://blog.rogertm.com/

@metacortex, no he instalado ni desinstalado ningún plugin últimamente, estos son los que tengo:

Activados:
Akismet
All in One SEO Pack
Contact Form 7
FeedBurner FeedSmith
Google XML Sitemaps
jQuery lazy load plugin
Lightbox 2
Really Simple CAPTCHA
Viper's Video Quicktags
wp-cache
WP-PageNavi
WP Smart Image II <-

Desactivados: (a punto de borrarlos)
Database Optimizer
Hello Dolly
WordPress.com Stats
WordPress Importer

Tal vez a estado pasando hace tiempo y no me he dado cuenta... pero hace mucho, tal vez más de un mes que no toco ningún plugin...
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 16/12/2010, 13:35
 
Fecha de Ingreso: julio-2009
Ubicación: Argentinalandia
Mensajes: 339
Antigüedad: 15 años, 5 meses
Puntos: 15
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

te odios HELLO DOLLY !!! te prenderia fuero si pudiera! eres completamente inutil plugin !!!

por cierto...
fijate si este plugin te salva las papas y sales del apuro "de ultima"
http://wordpress.org/extend/plugins/...t/screenshots/
__________________
Mi Perfil y Blog estan en Yeow.com.ar ✰✰✰✰✰
Pero en WONDED.COM estan Mis Proyectos OpenSource ;-)
  #6 (permalink)  
Antiguo 16/12/2010, 14:06
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Ya lo vi compa. Esa función no está orientada para uso en plantillas. Es el motivo por el que te devuelve la consulta sin los filtros apropiados (ya me preguntaba por qué nunca la había usado). Intenta esto:

Código PHP:
Ver original
  1. <ul>
  2. <?php
  3.  $ultimos = get_posts('posts_per_page=5');
  4.  foreach($ultimos as $post) {
  5.     setup_postdata($post);
  6.     echo '<li><a href="' . get_permalink() . '" title="Look '. get_the_title() .'" >' . get_the_title() .'</a> </li>' . "\n";
  7.  }
  8.  ?>
  9. </ul>
De forma predeterminada vienen ordenados por date y DESC, así que no es necesario fijar esos parámetros.
  #7 (permalink)  
Antiguo 16/12/2010, 14:37
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

@metacortex, funciona, pero solo muestra los últimos 5 post... y yo tenía 7, he estado mirando pero nada... Sigo intentándolo...

Gracias por la solución
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 16/12/2010, 14:38
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Cambia el valor de 'posts_per_page' al número que desees.
  #9 (permalink)  
Antiguo 16/12/2010, 14:48
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Cita:
Iniciado por metacortex Ver Mensaje
Cambia el valor de 'posts_per_page' al número que desees.
Lo cambié a 7, lo cambié a 10, lo dejé vacío, lo volví a poner a 5 y siempre me muestra 5...
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 16/12/2010, 15:04
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Entonces cambia el parámetro completo por 'showposts' de manera que quede así:

Código PHP:
$ultimos get_posts('showposts=7'); 
y vuelve a probar.
  #11 (permalink)  
Antiguo 16/12/2010, 15:22
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: wp_get_recent_posts() me muestra todos los post, incluso los draft

Perfecto, ahora si... Es que estaba en otros asuntos... Qué tardecita de jueves... Gracias Meta
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Etiquetas: draft, muestra, 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 08:21.