具體代碼如下
如果想調(diào)用文章鏈接地址的同時(shí)還想調(diào)用欄目名稱不妨試下
為什么要使用dede:php,dede:sql
在一些比較復(fù)雜的調(diào)用中用dede:arclist標(biāo)簽是解決不了問題的,比如說大家常說的調(diào)用某一會員發(fā)布的文章等等之類,這些一般要通過dede:sql標(biāo)簽來實(shí)現(xiàn)。
今天我所說的調(diào)用也是比較特殊的就是在首頁調(diào)用指定關(guān)鍵字的文章,其實(shí)這個跟dedecms的相關(guān)文章標(biāo)簽類似。這里給大家分享兩種方法。
dede:sql標(biāo)簽調(diào)用指定關(guān)鍵字文章靜態(tài)地址
這里引用dedecms官方關(guān)于dede:sql的介紹
【Sql 標(biāo)記】
功能說明:用于從模板中用一個SQL查詢獲得其返回內(nèi)容。
適用范圍:非擴(kuò)展模塊所有模板。
(1)語法:{dede:sql sql="這里寫sql語句"}底層模板{/dede:sql}
(2)屬性:
[1] sql 完整的SQL查詢語句。
(3)底層模板:
SQL語句中查出的所有字段都可以用[field:字段名/]來調(diào)用。
好了了解dede:sql標(biāo)簽后,就可以根據(jù)自己的需求寫sql語句了,我這里是要調(diào)用指定關(guān)鍵字的文章,sql語句如下:
"select * From dede_archives a where a.arcrank>-1 and a.title like '%生活小竅門%' limit 8"
語句解析:a.arcrank>-1限制調(diào)用已審核的文章;like '%生活小竅門%'調(diào)用指定關(guān)鍵字的文章;limit 8為調(diào)用條數(shù)為8條
然后就開始寫完整的標(biāo)簽和底層模板了,如下:
dede:sql標(biāo)簽其實(shí)就是通過sql查詢數(shù)據(jù)庫返回查詢的字段(注:這里查詢的字段為*,根據(jù)的實(shí)際情況來查詢),底板模板中的[field:字段名稱]調(diào)用的就是這個返回的字段,這些字段是沒有經(jīng)過任何程序處理的,直接就是數(shù)據(jù)庫里的內(nèi)容。比如說fulltitle,arcurl這個在數(shù)據(jù)庫中就沒有這兩個字段,平常我們在dede:arclist中用到的這些字段只不過是dede在php程序中處理的。知道了問題所在然后查了下資料終于解決了。
1、首先解決完整標(biāo)題和截字問題:我使用的是[field:title runphp='yes']@me=cn_substr(@me, 50);[/field:title]這種方法相信大家也經(jīng)常用到,這里就不多作介紹了,以后可能會專門弄個文章介紹這種用法。50就是截字長度
2、解決dede:sql標(biāo)簽靜態(tài)文章地址問題:這里比較麻煩了,我在網(wǎng)上轉(zhuǎn)了一下,多數(shù)給出的解決辦法就是href="/plus/view.php?aid=[field:id/]",顯然這不是我想要的這不是靜態(tài)地址,而其他地址用arclist調(diào)用的又是靜態(tài)地址,結(jié)果就成了一篇文章有兩個地址一個靜態(tài)一個動態(tài),這對seo來說顯然不友好,最好通過自己折騰終于成功了
3、解決id不能正確獲取的問題:之前沒注意到因?yàn)閐ede_arctype和dede_archives兩個表id字段名是一樣的,以至于底層模板獲取不到正確的id,之前select改了下,增加了別名。
dede:sql調(diào)用文章靜態(tài)鏈接地址的完美方法
新聞熱點(diǎn)
疑難解答
圖片精選