Suporte » Ajustando o WordPress » Problemas no (search.php)
Problemas no (search.php)
-
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>
-
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 7 anos, 1 mês atrás por degaus.
Vlw mano vc min ajudou muito
- O tópico ‘Problemas no (search.php)’ está fechado para novas respostas.