麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

WordPress搜索功能的二次升級

2024-09-07 00:51:05
字體:
來源:轉載
供稿:網友

WordPress搜索功能只能完成基本的搜索,如果我希望對搜索結果進行一些操作就不能實現了,下面我找到一博客中寫到可以對搜索進行如 顯示標題數 高亮搜索文本等功能.

默認的搜索結果中是不會顯示結果文章數的,可能對一些人來說會需要這個結果數,要在搜索結果中顯示文章數,很簡單,你只需要編輯search.php,找到如下代碼:

<h1>Search Results</h1> 替換為如下代碼內容:

  1. <h1><?php  
  2. /* Search Count */  
  3. $allsearch = &amp;new WP_Query("s=$s&amp;showposts=-1");  
  4. $key = wp_specialchars($s, 1);  
  5. $count = $allsearch->post_count; _e('');  
  6. _e('<span>');  
  7. echo $key; _e('</span>的搜索結果'); _e(' — ');  
  8. echo $count . ' '; _e('篇文章');  
  9. wp_reset_query(); ?></h1> 

關于搜索結果中顯示數目的demo,可以看看本博客的搜索頁面,雖然不一樣但基本上差不多,在搜索列表文章標題中高亮搜索文本,高亮搜索文文能夠使搜索者準確的看到想要知道的內容,依然編輯search.php,找到你的文章輸出loop,代碼如下:

  1. <h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"
  2. <?php the_title(); ?> 
  3. </a></h2> 

替換為:

  1. <?php 
  2.     $title = get_the_title(); 
  3.     $keysexplode(" ",$s); 
  4.     $title = preg_replace('/('.implode('|'$keys) .')/iu'
  5.         '<strong></strong>'
  6.         $title); 
  7. ?> 
  8.         <h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"
  9.           <?php echo $title; ?> 
  10. </a></h2> 

然后在你的css中加入下面的樣式:strong.search-excerpt {background:blue;},當搜索結果只有一篇時直接重定向到該文章,用下面的方法可以很方便的實現當搜索結果只有一篇時直接重定向到該文章,編輯你的functions.php并加入以下代碼:

  1. add_action('template_redirect''redirect_single_post'); 
  2. function redirect_single_post() { 
  3.     if (is_search()) { 
  4.         global $wp_query
  5.         if ($wp_query->post_count == 1) { 
  6.             wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); 
  7.         } 
  8.     } 

demo可以看水煮魚的博客,他那個就是自動跳轉的

更改Wordpress搜索結果每頁顯示文章數

WordPress默認的搜索結果是每頁顯示十篇文章,如果你想更改的話,只需要把下面的代碼加到functions.php中并修改數量.代碼如下:

  1. function limit_posts_per_search_page() { 
  2.     if ( is_search() ) 
  3.         set_query_var('posts_per_archive_page', 20);  
  4.  
  5. add_filter('pre_get_posts''limit_posts_per_search_page'); 

搜索結果限制文章格式

如果你的主題支持多種文章格式并且你想在搜索結果中只輸出一種格式,你只需要把下面的代碼放到functions.php,并修改你想要顯示的文章格式名稱,代碼如下:

  1. function SearchFilter($query) { 
  2.   if ($query->is_search) { 
  3.     // 輸入你想要顯示的文章格式 
  4.     $query->set('post_type''feeds'); 
  5.   } 
  6.   return $query
  7. add_filter('pre_get_posts','SearchFilter'); 

只搜索指定分類:

做到這個很簡單,只需要修改下面代碼的分類ID號并加入到search.php中,代碼如下:

  1. <?php if( is_search() )  : 
  2. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
  3. query_posts("s=$s&amp;paged=$paged&amp;cat=1,2,3");//cat的值就是分類的ID 
  4. endif; ?> 

完全禁用搜索功能

雖然搜索是個很有用的功能,但是有時候強迫癥的你就是想禁用它,那么你只需要把下面的代碼放到functions.php中:

  1. function fb_filter_query( $query$error = true ) { 
  2.     if ( is_search() ) { 
  3.         $query->is_search = false; 
  4.         $query->query_vars[s] = false; 
  5.         $query->query[s] = false; 
  6.  
  7.         // to error 
  8.         if ( $error == true ) 
  9.             $query->is_404 = true; 
  10.     } 
  11.  
  12. add_action( 'parse_query''fb_filter_query' ); 
  13. add_filter( 'get_search_form', create_function( '$a'"return null;" ) ); 

在一頁中顯示所有搜索結果

前面已經提到,默認搜索結果每頁顯示10篇,如果你想讓結果在一頁里顯示,只需要編輯search.php,找到下面的代碼:

  1. <?php if (have_posts()) : ?> 
  2. <?php while (have_posts()) : the_post(); ?> 
  3. //替換為 
  4. <?php $posts=query_posts($query_string . '&amp;posts_per_page=-1'); ?> 
  5. <?php if (have_posts()) : ?> 
  6. <?php while (have_posts()) : the_post(); ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宅男噜噜噜66国产在线观看 | 中国成人在线视频 | 免费看黄色一级片 | 欧日韩在线视频 | 亚洲精品a在线观看 | 欧美性videofree精品 | v11av在线播放 | 国产精品久久久久久久久久久久午夜 | 欧美精品一区二区三区久久久 | 久国产精品视频 | 欧美日韩亚洲精品一区二区三区 | 国产精品视频免费网站 | 日本欧美一区二区三区在线观看 | 91午夜免费视频 | 久久99国产精品视频 | av电影免费在线看 | 久久久久久艹 | 欧美成人午夜影院 | 热99re久久免费视精品频软件 | 中午字幕无线码一区2020 | 欧美黄 片免费观看 | 午夜小影院 | 羞羞的视频在线观看 | 黄污网站在线 | 精品国产欧美一区二区 | 欧美一级高清免费 | 日韩在线欧美在线 | 亚洲精品久久久久久久久久 | 天堂福利电影 | 成人免费毛片片v | 国产精品夜色视频一级区 | 毛片大全在线观看 | 久久久久久久久久久影视 | 亚洲国产精久久久久久久 | 九九久久视频 | 91精品国产九九九久久久亚洲 | 视频一区 在线 | 一级做受毛片免费大片 | 舌头伸进添的我好爽高潮网站 | 草久免费 | 久久久久久69 |