Ayuda con codigo PHP - Wordpress

Hola,

Vereis, estoy creando un blog con Wordpress y bien, en el header tengo 1 slider y tres imagenes/post destacados a la izquierda, más pequeños.

Dicho theme me venia con esta sección de destacados/featured, y de serie eran inicialmente 4 imagenes estaticas (imagen 1: la grande de la izquierda, imagen 2: la mediana superior, imagen 3/4 las dos pequeñas de debajo). Lo que pasa es que yo me las apañé para poner un Slider en el lugar donde estava la imagen1, pero claro, sin saber PHP, asi que lo hice como pude. Si entrais en la web vereis que se ve bien, pero el problema es que debajo del slider queda oculto un post. Concretamente, el más reciente. Para solucionar esto he creado un post que se llama "hidden", pero claro, al escribir una nueva entrada, este post llamado "hidden" para a la segunda posición y, por lo tanto, se muestra en la "imagen2" y el más nuevo queda oculto debajo del slider. Sabeis como puedo solucionar esto??

Aqui el codigo PHP, extraidor de header-php:

<?php } ?>
<?php echo '</div></div>'; } ?>
<?php if(isset($mts_options['mts_featured_slider'])) { if($mts_options['mts_featured_slider'] == '1' && $mts_options['mts_featured_slider'] != '') { ?>
<?php if(is_home() && !is_paged()) { ?>
<div class="featuredBox">
<?php $i = 1; $slider_cat = 1; if($mts_options['mts_featured_slider_cat'] != '') { $slider_cat = implode(",", $mts_options['mts_featured_slider_cat']); } $my_query = new WP_Query('cat='.$slider_cat.'&posts_per_page=4&ignore_sticky_posts=0');
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php if ($i == 1){ ?>
<div class="firstpost excerpt">

<?php if( function_exists('cyclone_slider') ) cyclone_slider('slide'); ?> AQUÍ HE METIDO EL SLIDER!!
</div><!--.post excerpt-->
<?php } elseif($i == 2) { ?>
<div class="secondpost excerpt">

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow" id="second-thumbnail">
<?php if ( has_post_thumbnail() ) { ?>
<?php the_post_thumbnail('mediumthumb',array('title' => '')); ?>
<?php } else { ?>
<div class="featured-thumbnail">
<img src="<?php echo get_template_directory_uri(); ?>/images/mediumthumb.png" class="attachment-featured wp-post-image" alt="<?php the_title(); ?>">
</div>
<?php } ?>
<p class="featured-excerpt">
<span class="featured-title"><?php the_title(); ?></span>
</p>
</a>
</div><!--.post excerpt-->
<?php } elseif($i == 3 || $i == 4) { ?>
<div class="thirdpost excerpt">

<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow" id="third-thumbnail">
<?php if ( has_post_thumbnail() ) { ?>
<?php the_post_thumbnail('smallthumb',array('title' => '')); ?>
<?php } else { ?>
<div class="featured-thumbnail">
<img src="<?php echo get_template_directory_uri(); ?>/images/smallfthumb.png" class="attachment-featured wp-post-image" alt="<?php the_title(); ?>">
</div>
<?php } ?>
<p class="featured-excerpt">
<span class="featured-title"><?php the_title(); ?></span>
</p>
</a>
</div><!--.post excerpt-->
<?php } ?>
<?php $i++; endwhile; wp_reset_query(); ?>
</div>
<?php } ?>
<?php }} ?>


En negrita he puesto lo que, sin saber PHP, creo que es interesante.
Lo que supongo se deberia hacer, es "eliminar" la casilla grande y asi
No consigo que me carguen las imágenes.

Por cierto, cuando vayas a escribir código utiliza [ code][ /code] que es mucho más fácil de leer.

Salu2

Edito:

por ejemplo:

<?php
if (isset($mts_options['mts_featured_slider'])) {
    if ($mts_options['mts_featured_slider'] == '1' && $mts_options['mts_featured_slider'] != '') {
?>
<?php
        if (is_home() && !is_paged()) {
?>
<div class="featuredBox">
<?php
            $i          = 1;
            $slider_cat = 1;
            if ($mts_options['mts_featured_slider_cat'] != '') {
                $slider_cat = implode(",", $mts_options['mts_featured_slider_cat']);
            }
            $my_query = new WP_Query('cat=' . $slider_cat . '&posts_per_page=4&ignore_sticky_posts=0');
            while ($my_query->have_posts()):
                $my_query->the_post();
?>
<?php
                if ($i == 1) {
?>
<div class="firstpost excerpt">   
<?php
                    if (function_exists('cyclone_slider'))
                        cyclone_slider('slide');
?>   AQUÍ HE METIDO EL SLIDER!!
</div><!--.post excerpt-->
<?php
                } elseif ($i == 2) {
?>
<div class="secondpost excerpt">
<a href="<?php
                    the_permalink();
?>" title="<?php
                    the_title();
?>" rel="nofollow" id="second-thumbnail">
<?php
                    if (has_post_thumbnail()) {
?>
<?php
                        the_post_thumbnail('mediumthumb', array(
                            'title' => ''
                        ));
?>
<?php
                    } else {
?>
<div class="featured-thumbnail">
<img src="<?php
                        echo get_template_directory_uri();
?>/images/mediumthumb.png" class="attachment-featured wp-post-image" alt="<?php
                        the_title();
?>">
</div>
<?php
                    }
?>
<p class="featured-excerpt">
<span class="featured-title"><?php
                    the_title();
?></span>
</p>
</a>
</div><!--.post excerpt-->
<?php
                } elseif ($i == 3 || $i == 4) {
?>
<div class="thirdpost excerpt">
<a href="<?php
                    the_permalink();
?>" title="<?php
                    the_title();
?>" rel="nofollow" id="third-thumbnail">
<?php
                    if (has_post_thumbnail()) {
?>
<?php
                        the_post_thumbnail('smallthumb', array(
                            'title' => ''
                        ));
?>
<?php
                    } else {
?>
<div class="featured-thumbnail">
<img src="<?php
                        echo get_template_directory_uri();
?>/images/smallfthumb.png" class="attachment-featured wp-post-image" alt="<?php
                        the_title();
?>">
</div>
<?php
                    }
?>
<p class="featured-excerpt">
<span class="featured-title"><?php
                    the_title();
?></span>
</p>
</a>
</div><!--.post excerpt-->
<?php
                }
?>
<?php
                $i++;
            endwhile;
            wp_reset_query();
?>
</div>
<?php
        }
?>
<?php
    }
}
?>


Edito 2:

bueno, parece que después de un buen rato me han cargado las imágenes [+risas]

He cambiado 2 líneas que creo que te harían el apaño. Aquí puedes ver las diferencias.

No sé como van exactamente esas "WP_Query", pero he modificado el parámetro "posts_per_page" a 3 porque el cuarto no te hace falta ya que solo muestras las primeras 3 entradas. Así te ahorras la última iteración del bucle XD

La entrada esa "hidden" deberías de borrarla claro está jaja

Salu2
WOW!!
Ha funcionado!! Muchas muchas gracias :D
Realmente estaba ofuscado con eso y no sabia como arreglarlo... bueno, tenia el apaño del post "hidden", pero era un poco chapuza [+risas] Gracias de verdad! Y tambien por explicalro tan bien y dejarlo tan claro :)

Ya puestos, tengo otra duda (la ultima y no tan importante, pero que estaria bien saber si se puede hacer) :D

La cosa es que, como quizás te hayas dado cuenta ya, en la sección de destacados/featured el ultimo post es el que queda en el cuadro mediano, mientras que los dos post anteriores van a los cuadros pequeños de debajo de este. Asi pues, el ultimo post, el más reciente (French Party) está ahora en el cuadro mediano, mientras que los dos post anteriores (Relax Sundays y Artist Night) quedan en los cuadros pequeños. Esta jerarquia no es realmente muy util para la web, ya que ahora por ejemplo me queda un evento pasado (Artist Night - sabado pasado) en Featured, mientras que si ahora me dase por publicar un post nuevo (por ejemplo: St. Patrick's Day, que lo tengo scheduled ya que es el dia 20 esa fiesta), lo que pasaria es que este post de St. Patrick's Day pasaria al cuadro mediano, y el de French Party se desplazaria al pequeño, lo que NO me interesa ya que el proximo evento en el calendario es French Party, que es este sabado y deberia estar en el mediano... no se si me explico,xd.

Asi que lo que me gustaria hacer es invertir la jerarquia. Es decir, que el post publicado más recientemente, se quedase en el ultimo cuadro pequeño. El segundo post publicado más recientemente se quedase en el otro cuadro pequeño. Y finalmente, que el tercer post más reciente, fuese al cuadro mediano. De esta manera, podria publicar posts con antelación sin preocuparme de que el siguiente evento baje, y en vez de eso la nueva entrada tendria una trayectoria escendente en la sección featured, estando en una posicion más destacada a medida que pasen los dias y se acerque el evento.

Un saludo!
Buenos días ZzzZZ

Prueba con esto

Como verás he quitado todas las partes HTML y las he puesto en "echos" porque sino no me enteraba de nada [+risas] Lo único que he hecho ha sido mirar documentación de WordPress y hacer 3 WP_Query con el parámetro "offset" que me interesaba. Es código guarro, con un trozo de código repetido [mad]
tom_deluxe escribió:Buenos días ZzzZZ

Prueba con esto

Como verás he quitado todas las partes HTML y las he puesto en "echos" porque sino no me enteraba de nada [+risas] Lo único que he hecho ha sido mirar documentación de WordPress y hacer 3 WP_Query con el parámetro "offset" que me interesaba. Es código guarro, con un trozo de código repetido [mad]


ups..... "Parse error: syntax error, unexpected $end on line 167" (que viene a ser la ultima linea, el cierre php) :s

Bueno, si no es igual, ya digo, esto no es tan vital, pero bueno, si sabes el fallo pues estaria bien incorporar la funcionalidad :)
LaraRaider escribió:
tom_deluxe escribió:Buenos días ZzzZZ

Prueba con esto

Como verás he quitado todas las partes HTML y las he puesto en "echos" porque sino no me enteraba de nada [+risas] Lo único que he hecho ha sido mirar documentación de WordPress y hacer 3 WP_Query con el parámetro "offset" que me interesaba. Es código guarro, con un trozo de código repetido [mad]


ups..... "Parse error: syntax error, unexpected $end in /usr/home/stayinto/speakeasy-tokyo.com/blog/wp-content/themes/point/header.php on line 167" (que viene a ser la ultima linea, el cierre php) :s

Bueno, si no es igual, ya digo, esto no es tan vital, pero bueno, si sabes el fallo pues estaria bien incorporar la funcionalidad :)


Si sale ese error es porque falta algún '{' por cerrar con un '}' o algún '<?php' con un '?>' En el trozo de código que te he puesto creo que no me he dejado nada sin cerrar. Mira a ver donde lo has pegado. Deberías de pegar el código desde la línea 3 incluida hasta el final de lo que me has puesto en tu primer post.
Correcto, sobraba un php? justo antes de donde pegaba el codigo.
La cosa "funciona", es decir, el orden se ha invertido, pero no acaba de verse bien la cosa.... xd
mira:

Tambien te dejo el header.php, para en caso te sea de utilidad. Es el archivo con los primeros cambios hechos, asi que funciona a la perfección pero con el orden inicial.
LaraRaider escribió:Correcto, sobraba un php? justo antes de donde pegaba el codigo.
La cosa "funciona", es decir, el orden se ha invertido, pero no acaba de verse bien la cosa.... xd
mira:

Tambien te dejo el header.php, para en caso te sea de utilidad. Es el archivo con los primeros cambios hechos, asi que funciona a la perfección pero con el orden inicial.

Imagen de lo que pasa haciendo los cambios comentados: http://oi60.tinypic.invalid/ayve42.jpg
Header: http://dropcanvas.com/ciypm


Parece ser que borré alguna barra por ahí. También he vuelto a poner las llamadas a unas funciones que se hacen tal cual estaban, porque no sé qué hacen [+risas]

Mira con esto a ver qué tal:

<?php
if (isset($mts_options['mts_featured_slider'])) {
    if ($mts_options['mts_featured_slider'] == '1' && $mts_options['mts_featured_slider'] != '') {
        if (is_home() && !is_paged()) {
         echo '<div class="featuredBox">';
            $slider_cat = 1;
            if ($mts_options['mts_featured_slider_cat'] != '') {
                $slider_cat = implode(",", $mts_options['mts_featured_slider_cat']);
            }

            $my_query = new WP_Query('cat=' . $slider_cat . '&posts_per_page=1&ignore_sticky_posts=0&offset=2');
         if ($my_query->have_posts()) {
                $my_query->the_post();
            echo '<div class="firstpost excerpt">';

            if (function_exists('cyclone_slider'))
               cyclone_slider('slide');

            echo '</div><!--.post excerpt-->';
            echo '<div class="secondpost excerpt">';
            echo '<a href="';
            the_permalink();
            echo '" title="';
            the_title();
            echo '" rel="nofollow" id="second-thumbnail">';
            
            if (has_post_thumbnail()) {
               the_post_thumbnail('mediumthumb', array(
                  'title' => ''
               ));
            } else {
               echo '<div class="featured-thumbnail">';
               echo '<img src="';
               echo get_template_directory_uri();
               echo '/images/mediumthumb.png" class="attachment-featured wp-post-image" alt="';
               the_title();
               echo '">';
               echo '</div>';
            }
            echo '<p class="featured-excerpt">';
            echo '<span class="featured-title">';
            the_title();
            echo '</span>';
            echo '</p>';
            echo '</a>';
            echo '</div><!--.post excerpt-->';
         }
         wp_reset_query();

         for ($i = 1; $i >= 0; --$i) {
            $my_query = new WP_Query('cat=' . $slider_cat . '&posts_per_page=1&ignore_sticky_posts=0&offset='.$i);
            if ($my_query->have_posts()) {
               $my_query->the_post();
               echo '<div class="thirdpost excerpt">';
               echo '<a href="';
               the_permalink();
               echo '" title="';
               the_title();
               echo '" rel="nofollow" id="third-thumbnail">';
               if (has_post_thumbnail()) {
                  the_post_thumbnail('smallthumb', array(
                     'title' => ''
                  ));
               } else {
                  echo '<div class="featured-thumbnail">';
                  echo '<img src="';
                  echo get_template_directory_uri();
                  echo '/images/smallfthumb.png" class="attachment-featured wp-post-image" alt="';
                  the_title();
                  echo '">';
                  echo '</div>';
               }
               echo '<p class="featured-excerpt">';
               echo '<span class="featured-title">';
               the_title();
               echo '</span>';
               echo '</p>';
               echo '</a>';
               echo '</div><!--.post excerpt-->';
            }
            wp_reset_query();
         }

         echo '</div>';
        }
    }
}
?>


Si ves que vuelve a fallar es preferible que me dejes el HTML que genera el código. Vamos que guardes la página del navegador xd
Yeah!! Ahora si!! :)

Muchas gracias, ahora funciona todo de perlas :D
Si algun dia tienes alguna duda referente a html/css (mi fuerte) ya sabes donde encontrarme ;)
LaraRaider escribió:Yeah!! Ahora si!! :)

Muchas gracias, ahora funciona todo de perlas :D
Si algun dia tienes alguna duda referente a html/css (mi fuerte) ya sabes donde encontrarme ;)


De nada, lo tendré en cuenta [sati]
9 respuestas