使用Joomla这样的CMS(内容管理系统)时,一个常见的问题就是如何禁止例如致谢辞页面、注册页面或此类独立的未分类页面被站内搜索。
要解决这个问题,我们需要修改这个文件:
joomla根路径/plugins/search/content.php
基于你的需求,我们有两种可选的解决方式。
第一种方式,如果你将所有这些独立的页面都归入未分类(uncategorised)这个section,那么可以按照下面的方法去做:
在上面的content.php文件第56行附近找到如下代码:
$sUncategorised = $pluginParams-get( 'search_uncategorised', 1 );
将它注释掉;整个代码段会像下面这样:
// 滁州网站建设公司 load plugin params info
$plugin =& JPluginHelper::getPlugin('search', 'content');
$pluginParams = new JParameter( $plugin-params );
$sContent = $pluginParams-get( 'search_content', 1 );
// $sUncategorised = $pluginParams-get( 'search_uncategorised', 公司网站制作方案 1 );
$sArchived = $pluginParams-get( 'search_archived', 1 );
$limit = $pluginParams-def( 'search_limit', 50 );
第二种方式,如果你希望做的更具体些,例如使某些特定的文章页面避开站内搜索,那么需要在content.php文件中83行附近加入这行代码:
$wheres2[] = "LOWER(a.metakey) NOT LIKE '{nosearch}'";
最终整个代码段会像下面这样:
$wheres = array();
switch ($phrase) {
case 'exact':
$text = $db-getEscaped($text);
$wheres2 = array();
$wheres2[] = "LOWER(a.title) LIKE '%$text%'";
$wheres2[] = "LOWER(a.introtext) LIKE '%$text%'";
$wheres2[] = "LOWER(a.`fulltext`) LIKE '%$text%'";
$wheres2[] = "LOWER(a.metakey) LIKE '%$text%'";
$wheres2[] = "LOWER(a.metadesc) LIKE '%$text%'";
$wheres2[] = "LOWER(a.metakey) NOT LIKE '%{nosearch}%'";
$where = '(' . implode( ') OR (', $wheres2 ) . ')';
break;
现在,你可以将{nosearch}添加到某篇文章的参数设置里的Meta Info - Keywords中,这样,即使该文章中包含站内搜索的关键字,它也不会出现在搜索结果列表里了。搞定。
译者:Viiiix
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。