Suporte » Ajustando o WordPress » Problemas no (search.php)

  • Resolvido iago2017

    (@iago2017)


    Olá estou criando um site com vários posts, Quando eu faço uma pesquisa na barra de buscas do site, ele faz um pesquisa dentro de todos os posts do site e min da os resultados do que eu pesquisei, Mais tem alguns posts que eu quero que eles NÂO apareção nos resultados da pesquisa, Etão crie uma categoria chamada LIXO e pus esse posts dentro dela o ID Dessa categoria e 124. Tem como alterar o código do site para NÂO aparecer nos resultados da busca esse posts que estão dentro dessa categoria ?
    Pra ajudar aqui esta o código do (search.php)

    <?php
    /**
     * The template for displaying Search Results pages.
     *
     * @package WordPress
     * @subpackage Novavideo
     * @since Novavideo 1.0
     */
    
    get_header(); ?>
    
        <?php
            $search = isset( $_GET['s'] ) ? $_GET['s']: null;
            $user_filtre = '';
            $user_display = '';
            
            if( $search ){
                $user_filtre .= 's=' . $_GET['s'] . '&';
                $user_display .= 's=' . $_GET['s'] . '&';
            }
            
            $filtre = novavideo_get_filtre();
            if ( $filtre === false )
                $filtre = 'date';
            $user_filtre .= 'filtre=' . $filtre . '&';
            
            $display = isset( $_GET['display'] ) ? $_GET['display']: get_option( novavideo_get_theme_name() . '_type_display' );
                            
            $user_display .= 'display=' . $display . '&';
            
        ?>
        
        <h1 class="border-radius-5"><?php _e( 'Search results for', novavideo_get_theme_name() ); ?> "<?php the_search_query(); ?>" <?php echo novavideo_get_nb_video(); ?> <?php novavideo_page_number( ' - ' ); ?></h1>
        
        <?php if ( have_posts() ) : ?>
        
        <div id="filtres">
        
            <div class="filtre-container">
            
                <?php _e('Sort by', novavideo_get_theme_name() ); ?> :
            
                <span class="border-radius-5"><?php echo novavideo_get_filtre_name( $filtre );?> <strong>▼</strong></span>
                
                <ul class="filtre-list">
                    <li <?php echo ($filtre == 'date') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=date"><?php echo __('lastest', novavideo_get_theme_name());?></a></li>
                    <li <?php echo ($filtre == 'views') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=views"><?php echo __('most viewed', novavideo_get_theme_name());?></a></li>
                    <li <?php echo ($filtre == 'duree') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=duree"><?php echo __('longest', novavideo_get_theme_name());?></a></li>
                    <?php if( get_option( novavideo_get_theme_name() . '_rating' ) == 'yes' ):?>
                        <li <?php echo ($filtre == 'rate') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=rate"><?php echo __('top rated', novavideo_get_theme_name());?></a></li>
                    <?php endif;?>
                    <li <?php echo ($filtre == 'random') ? 'class="selected"' : ''; ?>><a href="?<?php echo $user_display;?>filtre=random"><?php echo __('random', novavideo_get_theme_name());?></a></li>
                </ul>
            
            </div><!-- .filtre-list -->       
        
            <div class="filtre-display">
            
                <span><?php _e('View mode', novavideo_get_theme_name() ); ?> : </span>          
                    
                    <ul>
                        <li <?php echo ($display == 'tube') ? 'class="selected"' : ''; ?>>
                            <a id="tube" href="?<?php echo $user_filtre; ?>display=tube"><?php _e('tube', novavideo_get_theme_name() ); ?></a>
                        </li>   
                        <li <?php echo ($display == 'extract') ? 'class="selected"' : ''; ?>>
                        <a id="tube-extract" href="?<?php echo $user_filtre; ?>display=extract"><?php _e('tube with extract', novavideo_get_theme_name() ); ?></a>
                        </li>
                        <li <?php echo ($display == 'wall') ? 'class="selected"' : ''; ?>>
                            <a id="wall" href="?<?php echo $user_filtre; ?>display=wall"><?php _e('wall thumbnails', novavideo_get_theme_name() ); ?></a>
                        </li>            
                    </ul>
            
            </div><!-- .filtre-display -->
            
        </div><!-- #filtres -->
    
            <ul class="listing-videos listing-<?php echo $display; ?>">
            
                <?php while ( have_posts() ) : the_post(); ?>
                                       
                    <?php get_template_part( 'item', $display ); ?>
                
                <?php endwhile; ?>
        
            </ul>
                
        <?php else: ?>
             
            <h2><?php _e( 'Sorry, but nothing matched your search criteria. However, do not hesitate to watch our latest videos', novavideo_get_theme_name() ); ?> :</h2>
            
            <?php $page_query = new WP_Query( array( 'posts_per_page' => get_option( novavideo_get_theme_name() . '_nb_videos_listing' ), 'post_type' => 'post' ) ); ?>            
    
                <?php if( $page_query->have_posts() ) : ?>
                
                    <ul class="listing-videos listing-<?php echo get_option( novavideo_get_theme_name() . '_type_display' ); ?>">
                    
                    <?php while ( $page_query->have_posts() ) : $page_query->the_post(); ?>
                    
                        <?php get_template_part( 'item', get_option( novavideo_get_theme_name() . '_type_display' ) ); ?>
                        
                    <?php endwhile; ?>
                    
                    </ul>
                    
                <?php endif; ?>
            
            
        <?php endif; ?>
            
        <div class="clear"></div>
        
        <div class="pagination"><?php novavideo_theme_pagination(); ?></div><!-- .pagination -->   
           
    </div><!-- #content -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    Código do (searchform.php)

    
    <?php
    /**
     * The search form.
     *
     * @package WordPress
     * @subpackage Novavideo
     * @since Novavideo 1.0
     */
    
    get_header(); ?>
    
    <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
    
        <div>
    
            <?php if( get_search_query() ): ?>
            
                <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="border-radius-left-5" />
            
            <?php else: ?>
            
                <input class="textbox border-radius-left-5" value="<?php _e('Search' , novavideo_get_theme_name()); ?>..." name="s" id="s" onfocus="if (this.value == '<?php _e('Search' , novavideo_get_theme_name()); ?>...') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e('Search' , novavideo_get_theme_name()); ?>...';}" type="text" />
            
            <?php endif;?>
            
                <input type="submit" id="searchsubmit" value="" class="border-radius-right-5" />
            
    	</div>
        
    </form>
Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Coloque isto no functions.php :

    add_filter( ‘pre_get_posts’, ‘filtrar_busca’ );

    /*—————————————————–
    Nome: filtrar_busca($q)
    Sinopse: Remove a categoria com o id 124 do resultado de busca.
    do resultado da busca
    Parametros: $q (WP_Query)
    Retorno: $q (WP_Query)
    ‘—————————————————–*/
    function filtrar_busca($q){
    if ( $q->is_search && !is_admin() )
    $q->set( ‘cat’,’-124′ );

    return $q;
    }

    • Esta resposta foi modificada 5 anos, 4 meses atrás por degaus.
    Criador do tópico iago2017

    (@iago2017)

    Vlw mano vc min ajudou muito

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Problemas no (search.php)’ está fechado para novas respostas.