国产欧美二区三区-国产欧美高清-国产欧美国产精品第二区-国产欧美国产精品第一区-小说区 图片区-小说区 综合区 都市激情

當前位置: 首頁 > 站長資訊 > 正文頁面

DEDE文章中的keywords與tags

DEDE的“關鍵詞”是個多處使用、容易混淆的概念,起碼我知道的常用在這幾處:Dvx網站目錄_網站網址收錄與提交入口

1、文章中作為SEO關聯詞來替換鏈接的,叫關鍵詞,代碼是keyword。需要在后臺手工添加關鍵詞和相應鏈接,生成文章時把這些詞自動替換為錨文本,可指定替換次數。Dvx網站目錄_網站網址收錄與提交入口

2、文章中關聯其它文章的詞,也叫關鍵詞,代碼有兩個,是keywords和tags。Dvx網站目錄_網站網址收錄與提交入口

3、用來搜索的詞,叫關鍵詞,代碼還沒去查。Dvx網站目錄_網站網址收錄與提交入口

我主要講講與文章有關的關鍵詞,keywords和tags。Dvx網站目錄_網站網址收錄與提交入口

在DEDE的發布文章中,填寫的是tags,然后寫入tag相關的兩個表,一個是tag表名,一個是文章列表。但tags與文章主表不相關,所以平時調用文章內容時,都是無法調用tags的。Dvx網站目錄_網站網址收錄與提交入口

調用文章時調的是keywords,這個是文章主表dede_archives中有字段。但keywords又不是獨立存在的,是依附于tags。如果發文章時填寫了tags,則keywords自動變成一樣,相當于把tags復制一份。在調用文章、處理自由列表時,都是用的keywords而不是tags,就是因為keywords可以直接從主表中讀取。Dvx網站目錄_網站網址收錄與提交入口

那么問題來了:如果是采集的文章,keywords有可能是一些亂七八糟的詞,不管是在后臺一篇篇文章打開,還是把數據表下載回來一個個整理,都是非常麻煩的事,相對來說整理dede_tagindex和dede_taglist這兩個容易得多,刪除亂詞就行了。Dvx網站目錄_網站網址收錄與提交入口

但這樣一來,keywords與tags就不一致了。tags是正確的,而keywords卻很亂。但文章生成時,顯示的還是keywords,前臺看到的tag這個標簽還是亂的,自由列表、相關文章調用時就不是預期的結果。Dvx網站目錄_網站網址收錄與提交入口

研究了各個相關代碼后發現,DEDE把tags復制一份再寫入keywords其實是一個多余的做法,只要稍微修改一下調用代碼,這個keywords就可以廢棄不用。Dvx網站目錄_網站網址收錄與提交入口

比如生成文章的arc.archives.class.php本身有一個調用tags的函數$this->Fields['tags'] = GetTags($aid);根本不需要keywords這一步就把tags調出來了,而且模板代碼都解析好了。文章模板默認是調用的keywords字段,換成tags字段一樣可顯示。Dvx網站目錄_網站網址收錄與提交入口

<meta name="keywords" content="{dede:field.keywords/}" />Dvx網站目錄_網站網址收錄與提交入口

改成如下就可以了Dvx網站目錄_網站網址收錄與提交入口

<meta name="keywords" content="{dede:field.tags/}" />Dvx網站目錄_網站網址收錄與提交入口

至于相關文章、自由列表什么的,同樣只需要添加GetTags($aid)這個函數就可以讀出來,完全沒keywords什么事,主表中的keywords這個字段可以刪除或清空了。Dvx網站目錄_網站網址收錄與提交入口

在采集的時候,默認是寫入keywords字段而不理會tags的,很多人采集回來的文章只在文章頁面顯示所謂的tag,但真正的tag列表頁tags.php中卻看不到,再次說明keywords的用處真的很小。Dvx網站目錄_網站網址收錄與提交入口

也就是說,keywords能發揮作用的地方,用tags替代的效果是一樣一樣的。而tags發揮作用的地方,keywords無能為力。那keywords其實就是一個多余的東西嘛!Dvx網站目錄_網站網址收錄與提交入口

采集時只寫入keywords不寫入tags怎么辦呢?當然有辦法。因為DEDE默認就有寫入tags的函數InsertTags($tag, $aid),只需要在采集文件中添加兩行代碼就可以了。思路就是:Dvx網站目錄_網站網址收錄與提交入口

1、讓tags=keywordsDvx網站目錄_網站網址收錄與提交入口

2、添加函數InsertTags($tag, $aid)Dvx網站目錄_網站網址收錄與提交入口

這樣凡是有keywords的,tags也一樣有了。總之就是keywords就是多余了。Dvx網站目錄_網站網址收錄與提交入口

如果追求完美主義,非要保留keywords字段且非要跟tags內容相同,也容易:在生成文章的文件arc.archives.class.php中添加一個寫入代碼,讓讀取出來的tags寫進keywords里就可以了。寫法是這樣的:找到以下代碼Dvx網站目錄_網站網址收錄與提交入口

$this->dsql->ExecuteNoneQuery("Update `dede_archives` SET ismake=1 WHERE id='".$this->ArcID."'");Dvx網站目錄_網站網址收錄與提交入口

這個代碼是在生成文章以后,把文章狀態修改為“已生成”,那就可以同時把keywords也變一變,改成這樣:Dvx網站目錄_網站網址收錄與提交入口

$this->dsql->ExecuteNoneQuery("Update `dede_archives` SET ismake=1,keywords='{$this->Fields[tags]}' WHERE id='".$this->ArcID."'");Dvx網站目錄_網站網址收錄與提交入口

以上修改我已經實施了,原因就是采集時不小心采了很多亂亂的keywords回來,留著惡心,清空了,連帶tags的相應內容也刪除了。然后利用“批量添加tags”的功能添加了很多,由于是在列表頁添加的,keywords還是為空,非要打開文章編輯頁才會把keywords變得跟tags一致。由于文章有幾千篇,這顯示是不可能的事,所以就添加這個寫入代碼,然后在把這幾千篇文章重新生成一遍,keywords就跟tags一樣了。Dvx網站目錄_網站網址收錄與提交入口

如果文章都生成靜態的話,其實真的可以把keywords這個字段刪除,只使用tags就可以了。Dvx網站目錄_網站網址收錄與提交入口

  

此文由 網站目錄_網站網址收錄與提交入口 編輯,未經允許不得轉載!:

相關文章