我工作的公司繼承了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,但我如何設置網站使用自定義插件,而不是默認的搜索插件?
你必須找到模型中搜索查詢會執行,並在返回函數中的任何內容之前添加所需的查詢結果,以便首先出現提升的頁面。 – vodich 2013-02-15 14:01:40
謝謝。我找到了搜索查詢,現在我該如何將文章標記爲「已推廣」? – 2013-02-15 16:34:30
嗯,我假設你從模型返回的文章ID的數組返回,所以只是array_unshift()想要ID的,他們應該首先顯示 – vodich 2013-02-15 21:52:30