因對 PHP 理解有限,初期採用了較繁瑣的方式實現搜索功能。實際上 DedeCMS 內建支持直接調用全部分類,並可按關鍵詞匹配度排序輸出。本文分享一套經實測可行的搜索增強方案,涵蓋多關鍵詞搜索與指定欄目篩選。
<input type="hidden" name="kwtype" value="0">
<input type="hidden" name="channeltype" value="1">
<input name="keyword" id="search-keyword" type="text">
value="0" 必須設置,若設為 1 會報錯
1:搜索關鍵詞或相關文章0:搜索關鍵詞及其相關文章(推薦)value="1" 定義搜索欄目範圍<select name='typeid' id='typeid' class="select">
<option value='titlekeyword' selected='1'>--不限欄目--</option>
{dede:channelartlist row='950' typeid='3,376,375,218,229,383,18,360,366,93,60,16,66,109,103,82,23,118,50,72,4,29,41,211,204,197,355,242,190,181,174,171,163,154,147,138,130,86,273,228,227'}
<option value="{dede:field name='typeid'/}">--{dede:field name='typename'/}</option>
{/dede:channelartlist}
</select>
name='typeid':按欄目 ID 搜索的核心字段value='titlekeyword' selected='1':啟用智能搜索模式(標題+關鍵詞){dede:channelartlist}:循環輸出指定欄目選項,typeid 屬性列出需包含的欄目 ID 列表將上述代碼集成到搜索表單中,即可實現多關鍵詞匹配與指定欄目篩選的組合搜索功能。經實測,搜索結果可按關鍵詞接近程度智能排序,滿足大多數內容型站點的搜索需求。