Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/05/2013, 15:43
Ember
 
Fecha de Ingreso: diciembre-2004
Ubicación: Madrid
Mensajes: 550
Antigüedad: 19 años, 4 meses
Puntos: 28
Respuesta: Problemas con el buscador

Vale, casi 3 horas probando y ya sé qué pasa... a ver, el otro día planteé un problema con las categorías y subcategorías en este hilo http://www.forosdelweb.com/f118/prob...orias-1049862/

La solución aplicada es muy sencilla, simplemente cambiar unas pocas líneas y al mostrar las entradas de una categoría no se mostraban las entradas de la subcategoría. El problema es el que me ha hecho abrir este hilo, y es que al realizar una búsqueda no salen resultados. Devuelvo el loop.php a su estado original y los resultados vuelven a aparecer, pero entonces se me pintan las entradas de las categorías y subcategorías en una misma página, cosa que no quiero.

Bien, entonces la pregunta es cómo puedo solucionar ambos problemas, conseguir que funcionen ambas cosas a la vez.

Voy a pegar todo el código del loop.php

Código PHP:
<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php 
if ( $wp_query->max_num_pages ) : ?>
    <div id="nav-above" class="navigation">
        <div class="nav-previous"><?php next_posts_link__'<span class="meta-nav">&larr;</span> Older posts''twentyten' ) ); ?></div>
        <div class="nav-next"><?php previous_posts_link__'Newer posts <span class="meta-nav">&rarr;</span>''twentyten' ) ); ?></div>
    </div><!-- #nav-above -->
<?php endif; ?>

<?php /* If there are no posts to display, such as an empty archive page */ ?>
<?php 
if ( ! have_posts() ) : ?>
    <div id="post-0" class="post error404 not-found">
        <h1 class="entry-title"><?php _e'Not Found''twentyten' ); ?></h1>
        <div class="entry-content">
            <p><?php _e'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.''twentyten' ); ?></p>
            <?php get_search_form(); ?>
        </div><!-- .entry-content -->
    </div><!-- #post-0 -->
<?php endif; ?>

<?php 
global $query_string;
query_posts$query_string '&order=ASC&orderby=title' );

if(
is_category()){
    foreach((
get_the_category()) as $category) { 
        echo 
'<p><h2>';
        echo 
wp_title('') . ' '
        echo 
'</h2></p>';
    }
}

while (
have_posts()) : the_post(); ?>

<?php /* How to display posts of the Gallery format. The gallery category is the old way. */ ?>

    <?php if ( ( function_exists'get_post_format' ) && 'gallery' == get_post_format$post->ID ) ) || in_category_x'gallery''gallery category slug''twentyten' ) ) ) : ?>
        <div id="post-<?php the_ID(); ?><?php post_class(); ?>>
            <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printfesc_attr__'Permalink to %s''twentyten' ), the_title_attribute'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

            <div class="entry-meta">
                <?php twentyten_posted_on(); ?>
            </div><!-- .entry-meta -->

            <div class="entry-content">
<?php if ( post_password_required() ) : ?>
                <?php the_content(); ?>
<?php 
else : ?>
                <?php
                    $images 
get_children( array( 'post_parent' => $post->ID'post_type' => 'attachment''post_mime_type' => 'image''orderby' => 'menu_order''order' => 'ASC''numberposts' => 999 ) );
                    if ( 
$images ) :
                        
$total_images count$images );
                        
$image array_shift$images );
                        
$image_img_tag wp_get_attachment_image$image->ID'thumbnail' );
                
?>
                        <div class="gallery-thumb">
                            <a class="size-thumbnail" href="<?php the_permalink(); ?>"><?php echo $image_img_tag?></a>
                        </div><!-- .gallery-thumb -->
                        <p><em><?php printf_n'This gallery contains <a %1$s>%2$s photo</a>.''This gallery contains <a %1$s>%2$s photos</a>.'$total_images'twentyten' ),
                                
'href="' get_permalink() . '" title="' sprintfesc_attr__'Permalink to %s''twentyten' ), the_title_attribute'echo=0' ) ) . '" rel="bookmark"',
                                
number_format_i18n$total_images )
                            ); 
?></em></p>
                <?php endif; ?>
                        <?php the_excerpt(); ?>
<?php 
endif; ?>
            </div><!-- .entry-content -->

            <div class="entry-utility">
            <?php if ( function_exists'get_post_format' ) && 'gallery' == get_post_format$post->ID ) ) : ?>
                <a href="<?php echo get_post_format_link'gallery' ); ?>" title="<?php esc_attr_e'View Galleries''twentyten' ); ?>"><?php _e'More Galleries''twentyten' ); ?></a>
                <span class="meta-sep">|</span>
            <?php elseif ( in_category_x'gallery''gallery category slug''twentyten' ) ) ) : ?>
                <a href="<?php echo get_term_link_x'gallery''gallery category slug''twentyten' ), 'category' ); ?>" title="<?php esc_attr_e'View posts in the Gallery category''twentyten' ); ?>"><?php _e'More Galleries''twentyten' ); ?></a>
                <span class="meta-sep">|</span>
            <?php endif; ?>
                <span class="comments-link"><?php comments_popup_link__'Leave a comment''twentyten' ), __'1 Comment''twentyten' ), __'% Comments''twentyten' ) ); ?></span>
                <?php edit_post_link__'Edit''twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">''</span>' ); ?>
            </div><!-- .entry-utility -->
        </div><!-- #post-## -->

<?php /* How to display posts of the Aside format. The asides category is the old way. */ ?>

    <?php elseif ( ( function_exists'get_post_format' ) && 'aside' == get_post_format$post->ID ) ) || in_category_x'asides''asides category slug''twentyten' ) )  ) : ?>
        <div id="post-<?php the_ID(); ?><?php post_class(); ?>>

        <?php if ( is_archive() || is_search() ) : // Display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php the_excerpt(); ?>
            </div><!-- .entry-summary -->
        <?php else : ?>
            <div class="entry-content">
                <?php the_content__'Continue reading <span class="meta-nav">&rarr;</span>''twentyten' ) ); ?>
            </div><!-- .entry-content -->
        <?php endif; ?>

            <div class="entry-utility">
                <?php twentyten_posted_on(); ?>
                <span class="meta-sep">|</span>
                <span class="comments-link"><?php comments_popup_link__'Leave a comment''twentyten' ), __'1 Comment''twentyten' ), __'% Comments''twentyten' ) ); ?></span>
                <?php edit_post_link__'Edit''twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">''</span>' ); ?>
            </div><!-- .entry-utility -->
        </div><!-- #post-## -->

<?php /* How to display all other posts. */ ?>

    <?php else : ?>
        <div id="post-<?php the_ID(); ?><?php post_class(); ?>>
            <!--h2 class="entry-title"><a target="_blank" href="<?php the_permalink(); ?>" title="<?php printfesc_attr__'Permalink to %s''twentyten' ), the_title_attribute'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2-->
            
            <div onclick="desplegarContraer('ocultar-<?php the_ID(); ?>',this);" class="linkContraido"><h2 class="entry-title"><?php the_title(); ?></h2></div>
            <div id="ocultar-<?php the_ID(); ?>" class='elementoOculto'>
                <?php the_content__'Continue reading <span class="meta-nav">&rarr;</span>''twentyten' ) ); ?>
            </div>
            
            <?php
            
if(is_search())
            {
                foreach((
get_the_category()) as $childcat) {
                  
$parentcat $childcat->category_parent;
                  
$cadena get_cat_name($parentcat);
                  if(
strpos($cadena"Cat") === 0)
                  {
                   
_e('<p style="font-weight: bold; font-style:italic; color: blue; font-size: 12px;">[:en]This book belongs to 
                    [:es]Este libro pertenece al '
);
                  echo 
strtolower($cadena).'</p>';
                  }
                }
            }
            else
            {
                global 
$wp_the_query;
                if ( !
$id $wp_the_query->get_queried_object_id() )
                    return;
                
//obtengo el link en el que estoy
                
$link get_permalink$id );
                
//cuento el número de /
                
$n_barras substr_count($link'/');
                
//recupero las categorias
                
$categorias get_category_parents($catFALSE'/');
                
$datos explode('/',$categorias);
                
$pintar $datos[0];
                
_e('<p style="font-weight: bold; font-style:italic; color: blue; font-size: 12px;">[:en]This book belongs to 
                    [:es]Este libro pertenece al '
);
                  echo 
strtolower($pintar).'</p>';
            }
                 
?>
                
            <div class="entry-meta">
                <?php twentyten_posted_on(); ?>
            </div><!-- .entry-meta -->

    <?php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
            <div class="entry-summary">
                <?php //the_excerpt(); ?>
            </div><!-- .entry-summary -->
    <?php else : ?>
            <div class="entry-content">
                <?php the_content__'Continue reading <span class="meta-nav">&rarr;</span>''twentyten' ) ); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' __'Pages:''twentyten' ), 'after' => '</div>' ) ); ?>
            </div><!-- .entry-content -->
    <?php endif; ?>

            
        </div><!-- #post-## -->

        <?php comments_template''true ); ?>

    <?php endif; // This was the if statement that broke the loop into three parts based on categories. ?>

<?php endwhile; wp_reset_query();// End the loop. Whew. ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php 
if (  $wp_query->max_num_pages ) : ?>
                <div id="nav-below">
                    <center><?php wp_pagenavi(); ?></center>
                </div><!-- #nav-below -->
<?php endif; ?>
Cambio esto
Código PHP:
while (have_posts()) : the_post(); ?> 
por esto
Código PHP:
$cat intvalget_query_var('cat') );
while (
have_posts()) : the_post();
if (
in_category($cat) ) : ?> 
y añado un endif; antes del endwhile;

Entiendo que al añadir if (in_category($cat) ) : impido que el buscador haga el loop, ¿no?