Joomla - 搜索结果页面的顺序
我工作的公司继承了Joomla网站,我没有Joomla的经验,所以我希望有人能让我知道以下是否可能。Joomla - 搜索结果页面的顺序
在Joomla网站上搜索时,客户希望某些搜索条件的页面出现在搜索结果的顶部。
根据搜索词有没有可能将某些网页推荐到搜索结果的顶部?
欣赏任何支持与此。
UPDATE
测试本地我已经更新在/plugins/search/content.php的SQL查询来获取接近我后的结果。
SELECT
a.title AS title,
a.metadesc,
a.metakey,
a.created AS created,
CONCAT(a.introtext, a.fulltext) AS text,
CONCAT_WS("/", u.title, b.title) AS section,
CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,
CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug, u.id AS sectionid, "2" AS browsernav
FROM jos_content AS a
INNER JOIN jos_categories AS b ON b.id=a.catid
INNER JOIN jos_sections AS u ON u.id = a.sectionid
WHERE
((a.title LIKE '%carbohydrate%' OR a.introtext LIKE '%carbohydrate%' OR a.fulltext LIKE '%carbohydrate%' OR a.metakey LIKE '%carbohydrate%' OR a.metadesc LIKE '%carbohydrate%'))
AND a.state = 1
AND u.published = 1
AND b.published = 1
AND a.access <= 0
AND b.access <= 0
AND u.access <= 0
AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2013-02-18 14:55:51')
AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2013-02-18 14:55:51')
GROUP BY a.id
ORDER BY
(NOT(a.title LIKE '%carbohydrate%'))
, (NOT(a.introtext LIKE '%carbohydrate%'))
, (NOT(a.fulltext LIKE '%carbohydrate%'))
, (NOT(a.metakey LIKE '%carbohydrate%'))
, (NOT(a.metadesc LIKE '%carbohydrate%'))
我现在想将此作为自定义插件,而不是覆盖任何核心插件。我按照教程http://docs.joomla.org/Creating_a_search_plugin,但我如何设置网站使用自定义插件,而不是默认的搜索插件?
假设您使用的是Joomla 2.5(虽然这可能与以前的版本相同),但您需要在“菜单管理器”中找到显示搜索结果的菜单项。
在这个菜单项中有一些选项在“基本选项”选项卡下。这些包括按最新优先,最早优先,人气排名,按字母排序和按类别排序的搜索结果。
“基本选项”排序与我之后的不完全匹配。我试图确保某些文章每次都出现在搜索结果的顶部。 – 2013-02-15 16:38:33
我会用插件或者渲染一个模块,或者直接将它们放在布局文件中,以便搜索结果。 – Elin 2013-02-16 00:07:04
如果“固定项目”总是相同,只需覆盖搜索结果模板并在模板覆盖中添加项目。
只要你找到文件复制
/components/com_search/views/search/tmpl
到
/templates/your_template/com_search/search
然后default_results.php编辑,把你固定的结果有
你必须找到模型中搜索查询会执行,并在返回函数中的任何内容之前添加所需的查询结果,以便首先出现提升的页面。 – vodich 2013-02-15 14:01:40
谢谢。我找到了搜索查询,现在我该如何将文章标记为“已推广”? – 2013-02-15 16:34:30
嗯,我假设你从模型返回的文章ID的数组返回,所以只是array_unshift()想要ID的,他们应该首先显示 – vodich 2013-02-15 21:52:30