十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、需要大家新建一个搜索页面,将它命名为:searchform.php
成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为南县企业提供专业的成都网站建设、成都网站制作,南县网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
2、直接用DW打开searchform.php,将以下代码一会补充复制到searchform.php中。
3、复制添加网站主题里边的wordpress 分类模板目录,可以是文章的列表目录,也可以是产品图片列表目录,然后更名为search.php,才能实现搜索功能。
4、选择搜索框显示的页面位置,并在相应的位置添加搜索框调用代码:
?php include (TEMPLATEPATH . searchform.php'); ?
按照以上步骤全部完成之后,就可以在自己的网站上实现搜索功能了。
我们知道,中文断词搜索中用到的一种重要结构是倒排索引,由索引key和包含这个key的所有文档的id排列成的倒排链组成。搜索的过程就是对倒排链做布尔运算的过程(一般是求交运算)。假如没有中文分词,则一般只能以单字作为索引key建立倒排。
wordpress主题搜索对用户不太友好:原因是搜索必须是标题不间断的词语才能搜索得到。
举例:
比如你素材(或文章)的标题是 C4D瓷砖地板花纹花岗岩材质通道模型贴图法线置换凹凸素材
搜索 C4D瓷砖地板 瓷砖地板花纹 花岗岩材质 这种标题里相邻的词语才能搜索到这篇素材(或文章)
然而搜索 C4D花纹 C4D花岗岩 花岗岩模型贴图 像这种 标题里没有连在一块的词语,就搜索不到刚才那篇素材(或文章)。
intsearch中文智能断词搜索神器,解决你的烦恼。以下是intsearch搜索的示例:
1.完整的素材(或文章)能搜索到这篇
2.间断的词语也能搜索到这篇素材,用户搜索不会按照你标题里设置的连词搜索,搜索关键词具有随意和针对性,比如客户想找C4D的花岗岩贴图,当他搜索C4D花岗岩或者花岗岩贴图就能准确找到这篇素材。
3.词语打乱顺序也能搜索到这篇素材
需要的朋友可以去看我们的演示,截图上面有相关信息
wordpress系统本身是对搜索引擎友好的,如果网站的内容比较私密不希望蜘蛛爬取,可以能过以下方法实现:
1、进入wordpress "设置" - "阅读" - 然后勾选“建议搜索引擎不索引本站点”,再点击 “保存更改”。这样搜索引擎就不会收录和索引网站了。
2、还可以通过配置“robots.txt”来告诉搜索引擎,不要收录/索引网站的内容;
步骤:
1),新建一个文本文档,重命名为“robots.txt”;
2),在文本文件贴入以下内容并保存:
User-agent: * Disallow: / 3),将设置好的“robots.txt”上传至网站的根目录。
WordPress 默认的搜索功能还真挺弱的,搜索出来的结果很不符合人意,如果你想让它检索出来的结果更加相关,可以限定只搜索文章的标题,将下面的代码添加到主题的 functions.php 文件即可:
/**
* 让 WordPress 只搜索文章的标题
*
*/
function __search_by_title_only( $search, $wp_query )
{
global $wpdb;
if ( empty( $search ) )
return $search; // skip processing - no search term in query
$q = $wp_query-query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';
$search =
$searchand = '';
foreach ( (array) $q['search_terms'] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb-posts.post_title LIKE '{$n}{$term}{$n}')";
$searchand = ' AND ';
}
if ( ! empty( $search ) ) {
$search = " AND ({$search}) ";
if ( ! is_user_logged_in() )
$search .= " AND ($wpdb-posts.post_password = '') ";
}
return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );