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

Nuevo modulo

Estas en el tema de Nuevo modulo en el foro de WordPress en Foros del Web. Hola a todos vereis he intentado crear un modulo o cajita en mi plantilla sin exito ya que mis conocimientos de php son limitados. Mi ...
  #1 (permalink)  
Antiguo 28/04/2009, 21:02
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Nuevo modulo

Hola a todos vereis he intentado crear un modulo o cajita en mi plantilla sin exito ya que mis conocimientos de php son limitados.

Mi idea del modulo es esta:



Donde se mostraria lo siguiente:

Los ultimos 5 titulos y extractos correspondientes a los 5 ultimos post de una categoria.

Lo intente haciendo algo asi:

Código PHP:
<?php while (have_posts()) : the_post(); ?>

<?php if ( in_category('3') ) { ?>

       <h2 id="post-<?php the_ID(); ?>">

       <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>

<?php the_title(); ?></a></h2>

       <?php the_excerpt(''?>
         
 <?php ?>

<?php endwhile; ?>
Y esto no funciona bien ya que en cuanto cambias de pagina se jode xD.

Un saludo.
  #2 (permalink)  
Antiguo 29/04/2009, 08:46
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Con algo así bastaría:

Código PHP:
<?php
query_posts
('showposts=5&cat=XX');
if (
have_posts()) : while (have_posts()) : the_post();
?>

<li>
<a href="<?php the_permalink() ?>"><?php the_title() ?></a><br />
<?php the_excerpt(''?> 
</li>

<?php endwhile; endif; ?>

En el query_posts(), debes cambiar el XX por la categoría de la que deseas mostrar los posts ;)
Espero que te sirva

pd. Puedes encontrar abundante información sobre el query_posts aquí.
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
  #3 (permalink)  
Antiguo 29/04/2009, 11:24
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

Funciona bien, pero al añadir este codigo, las cosas dejan de funcionar.

Por ejemplo con el codigo puesto, le doy a los comentarios de cualquier post, y no me los muestra, me muestra el index con todos los post.
Y si le doy a buscar cualquier cosa en el buscador del WP, me muestra las entradas que genera el codigo pero en la zona donde deberia mostrar el resultado de la busqueda. No se si me he explicado bien :S.

No se pero algo falla xD. La cosa es que el modulo va bien pero debe haber un conflicto con alguna sesion o similar del WP y el codigo.

Luego comprobare desactivando todos los plugins, a ver si el conflicto tiene algo que ver con uno de ellos.

Última edición por Xray; 29/04/2009 a las 11:36
  #4 (permalink)  
Antiguo 29/04/2009, 11:29
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Edite, ya que has editado lo de arriba y queda descolgado :P

Como pones en tu mensaje debajo, probablemente el problema esté en la plantilla que estás usando o cómo estás insertando el código en la plantilla... ya que como tu has dicho funciona correctamente en el theme classic (y yo mismo he usado ese querry en otras plantillas)...


Hay mucha data interesante en el codex, no dejes de mirarla!
Y recuerda que nunca es tarde para comenzar a aprender (aunque sea cosas básicas que te permitan entender y modificar mejor WordPress, que tiene un poder de personalización increible!)

Saludo
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me

Última edición por Anarninquë; 29/04/2009 a las 15:59 Razón: Se edito el mensaje previo a este.
  #5 (permalink)  
Antiguo 29/04/2009, 13:50
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

Edite el mensaje entero despues de que postearas xD y no has debido de leer lo que he comentado en #3, asi todo he localizado el origen del problema. Hay algo mal en la plantilla que estoy modificando porque la he vuelto a instalar entera sin modificaciones y al añadir tu codigo en cualquier parte del theme me sigue generando los mismos problemas.

Para descartar que fuese un fallo del codigo probe modificando el theme "classic" y ahi funciona correctamente todo el blog por lo que estoy seguro que el problema es de la plantilla. Ahora el dilema es encontrar el conflicto con mi plantilla en todo el codigo...

Asi todo gracias de nuevo :D

PD: Muy interesante tu web, me identifico mucho con parte de lo que comentas en temas de estudios y pensamientos y en la forma que afrontas el tema del diseño. jeje saludos.

Última edición por Xray; 29/04/2009 a las 14:07
  #6 (permalink)  
Antiguo 29/04/2009, 16:00
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Si quieres muestranos la plantilla que utilizas (o pon el código de dónde quieres incluirlo) y quizá ahi te pueda/podamos orientar mejor... quizá el error sea una tontada! ;)




pd. gracias por el comentario sobre mi web ^_^
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
  #7 (permalink)  
Antiguo 29/04/2009, 16:42
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

La plantilla que uso es VersatilityLite http://thinkdesignblog.com/free-word...ility-lite.htm (le he dejado un comentario al creador del theme) llevo un par de horas rompiendome la cabeza y no hay manera, he modificado todos los archivos y sigue fallando. Lo que me fastidia es que en el classic funciona bien y en este no :(.

El codigo lo tengo en el header.php pero no tiene ningun misterio, esta dentro de un div justo encima de la barra de navegacion tipica.
  #8 (permalink)  
Antiguo 29/04/2009, 16:50
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Ok, luego nos cuentas si tienes novedades de parte del creador... sino puedes publicar el código en header.php y lo vemos ;)

Sinceramente así sin mas datos, no se me ocurre mucho más... :s
Ojalá puedas solucionarlo
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
  #9 (permalink)  
Antiguo 29/04/2009, 16:59
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php ?> <?php wp_title(); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<!--[if lte IE 6]>
<script src="<?php bloginfo('stylesheet_directory'); ?>/js/sfhover.js" type="text/javascript"></script>
<![endif]-->
<?php wp_head(); ?>
</head>
<body>
<div id="page">
    <div class="top-header">
        <div id="logo"><a href="<?php echo get_option('home'); ?>/"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.gif" alt="logo"/></a></div>
        <div class="banner">
            <div align="center" style="padding-top:5px;">
            </div>
        </div>
        
        <div class="carro">
            <?php include (ABSPATH '/wp-content/plugins/featured-content-gallery/gallery.php'); ?>
        </div>
        
        <div class="carro2">
            <?php 
                query_posts
('showposts=5&cat=3'); 
                if (
have_posts()) : while (have_posts()) : the_post(); 
            
?> 
            <div class="caja">
                <img src="<?php bloginfo('stylesheet_directory'); ?>/images/mini.gif" width="11" height="11" alt="" /><a href="<?php the_permalink() ?>"><?php the_title() ?></a> 
                <?php the_excerpt(''?>   
            </div>
            
            <?php endwhile; endif; ?> 
        </div>

<ul id="nav">
        <div class="navdcha"><span>RSS:</span> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/rss2.gif" width="21" height="21" alt="" /><span>EMAIL:</span> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/email2.gif" width="21" height="21" alt="" /></div>
            <?php /* If this is the frontpage */ if ( is_home() ) { ?>
            <li class="current-cat"><a href="<?php echo get_option('home'); ?>/" class="home">Home</a></li>
  <?php } else { ?>
            <li><a href="<?php echo get_option('home'); ?>/" class="home">Home</a></li>
            <?php ?>
  <?php wp_list_pages('title_li='); ?>
</ul>

<div class="texture-top">&nbsp;</div>
<div class="wrap-middle">
Hay alguna cosa en css un poco chapuza pero no dan pa mas mis conocimientos xD

Te pondria un enlace para que lo vieses tu mismo, pero lo tengo en local y no se realmente como hacer para que el apache muestre la web publicamente. :S
  #10 (permalink)  
Antiguo 29/04/2009, 18:28
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Por lo que estuve viendo en el enlace que me pasaste, se me ocurre que puede deberse a alguna "incompatibilidad" con algun query que se haga en single.php y/o search.php, ya que al ingresar en un post en lugar de mostrar dicho post, lo que hace es mostrar los 5 que pedimos en el header.php

Te animas a poner el código del single.php?
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
  #11 (permalink)  
Antiguo 30/04/2009, 13:25
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

Yo tambien creo que el problema anda en ese archivo por descarte...

Te lo pego, creo que demomento no he modificado nada d este archivo.

Código PHP:
<?php get_header(); ?>

    <div id="content">

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        

        <div class="post" id="post-<?php the_ID(); ?>">
            <h2><?php the_title(); ?></h2>
                <div class="top-tools">Posted By <span><?php the_author() ?></span>  on  <span><?php the_time('F jS, Y'?></span>    <?php edit_post_link('Edit''''  '); ?></div>

            <div class="entry">
                <?php if ( get_post_meta($post->ID'thumbnail'true) ) { ?> <br class="clear-fix"/>
                <div class="post-thumbnail"><img src="<?php $key="thumbnail"; echo get_post_meta($post->ID$keytrue); ?>" alt="<?php the_permalink() ?>"/></div>                
                <?php ?>
                <?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>

                <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ''after' => '</p>''next_or_number' => 'number')); ?>
                <?php the_tags'<p>Tags: '', ''</p>'); ?>




<div class="tools no-border"><div class="float-left"><span>Similar Posts</span> </div><div class="float-right share"><span>Share</span></div></div>

<ul class="list-items share">
<li><a href="http://digg.com/submit?phase=2&amp;url=<?php the_permalink() ?>&amp;title=<?php the_title(); ?>" title="Digg this story" rel="nofollow">Digg</a></li>
<li><a href="http://www.stumbleupon.com/submit?url=<?php the_permalink(); ?>&amp;title=<?php the_title(); ?>" rel="nofollow"> Stumble it!</a> </li>
<li><a href="http://reddit.com/submit?url=<?php the_permalink(); ?>&amp;title=<?php the_title(); ?>" rel="nofollow">Reddit</a></li>
</ul>

<ul class="list-items">
<?php
related_posts_by_category
(
  array(
    
'orderby' => 'post_date',
    
'order' => 'DESC',
    
'limit' => 3,
    
'echo' => true,
    
'before' => '<li>',
    
'after' => '</li>',
    
'rel' => 'nofollow',
    
'type' => 'post',
    
'message' => '<li><a href=#">no related posts</a></li>'
  
)
);
?>
</ul>


<div class="tools"><div class="float-left"><span>Posted in</span> <?php the_category(', '?> </div><div class="float-right share"><span><?php comments_number('Comments 0''Comments 1''Comments %' );?></span></div></div>

            </div>
        </div>

    <?php comments_template(); ?>

    <?php endwhile; else: ?>

        <p>Sorry, no posts matched your criteria.</p>

<?php endif; ?>




    </div>

<?php get_sidebar(); ?>
<?php get_footer
(); ?>

Última edición por Xray; 30/04/2009 a las 13:34
  #12 (permalink)  
Antiguo 01/05/2009, 10:55
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Sinceramente no estoy seguro de si funcionará, pero prueba a llamar (en el single.php) antes de la línea:

Código PHP:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
un query_posts() sin parámetros... quedaría algo así:

Código PHP:
<?php query_posts(); ?>
<?php 
if (have_posts()) : while (have_posts()) : the_post(); ?>
o si eso no funcionara:

Código PHP:
<?php query_posts($query_string); ?>
<?php 
if (have_posts()) : while (have_posts()) : the_post(); ?>

No te aseguro que funcione, pero no dejes de probarlo
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
  #13 (permalink)  
Antiguo 01/05/2009, 14:49
 
Fecha de Ingreso: febrero-2003
Mensajes: 70
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Nuevo modulo

Pues creo que FUNCIONA!! :D.

Tuve que añadirle al single y search.php el segundo que pusiste:

Código PHP:
<?php query_posts($query_string); ?>
Que significa realmente esa variable $query_string?

^^ Por enesima vez muchisimas gracias por molestarte en ayudarme, has sido muy amable. Te debo 1 :D

Un saludo.
  #14 (permalink)  
Antiguo 01/05/2009, 15:19
Avatar de Anarninquë
Colaborador
 
Fecha de Ingreso: julio-2005
Ubicación: MVD | Uruguay
Mensajes: 1.096
Antigüedad: 18 años, 9 meses
Puntos: 28
Respuesta: Nuevo modulo

Genial

Llamar al query_posts() pasando como parámetro $query_string sería como "llamar al query_string()" por defecto de WP.
Como antes llamamos en el header a los últimos 5 posts, esto es una forma de "limpiar el query" y que siga la ejecución normal... ;) se entiende?

Aquí una info (en inglés) obtenida de aquí:
Cita:
Place a call to query_posts() in one of your Template files before The Loop begins. The wp_query object will generate a new SQL query using your parameters. When you do this, WordPress ignores the other parameters it receives via the URL (such as page number or category). If you want to preserve that information, you can use the variable $query_string in the call to query_posts().
__________________
Marcelo Ferreiro - Desarrollador Web
Mi Web - Pixelar.me
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:43.