首頁 > CMS教程 > DEDECMS > 主體

一招解決織夢Dedecms中萬用標籤loop不能輸入URL的問題

angryTom
發布: 2019-11-06 17:57:15
轉載
1874 人瀏覽過

這篇文章主要為大家介紹了織夢Dedecms中萬能標籤loop不能輸入URL的解決方法,涉及針對標籤源碼的修改,具有一定參考借鑒價值,需要的朋友可以參考下

一招解決織夢Dedecms中萬用標籤loop不能輸入URL的問題

#萬能標籤loop是可以隨意的在dedecms中調用任意表的數據標籤了,所以叫萬能標籤但今天在使用loop時發現我們常用的arcurl為空了,意思就是url沒有那就等於這個標籤沒有了,下面我就來給大家解決此問題吧.

先看官方對於loop標籤說明

標籤名稱:loop

功能說明:呼叫任意表的資料標籤

適用範圍:全域標記

基本語法,程式碼如下:

{dede:loop table='dede_archives' sort='' row='4' if=''} 
<a href=&#39;[field:arcurl/]&#39;>[field:title/]</a> 
{/dede:loop}
登入後複製

標籤屬性:

#table:查詢表名

sort:用於排序的欄位

row:傳回結果的條數

if:查詢的條件

按照這樣我寫了一個簡單的例子,程式碼如下:

{dede:loop table=&#39;dede_archives&#39; sort=&#39;&#39; row=&#39;4&#39; if=&#39;&#39;} 
<a href=&#39;[field:arcurl/]&#39;>[field:title/]</a> 
{/dede:loop} 
//输出结果 
你好dedecms
登入後複製

大家會注意到了href=''空了就沒有url地址呀,這個標籤所以對於我講沒用了,百度找到一個解決辦法.

1.打開Include/common.func.php,找到54行,再這裡添加一個函數代碼如下:

function IDReturnURL($ID) 
{ 
//lonely 
global $dsql; 
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault, 
tp.defaultname,tp.namerule,tp.moresite,tp.siteurl,tp.sitepath 
from dede_archives arc left join dede_arctype tp on arc.typeid=tp.id where arc.id = ".$ID;
$row = $dsql->GetOne($query); 
$ReturnURL = GetFileUrl($row[&#39;id&#39;],$row[&#39;typeid&#39;],$row[&#39;senddate&#39;],$row[&#39;title&#39;],$row[&#39;ismake&#39;], 
$row[&#39;arcrank&#39;],$row[&#39;namerule&#39;],$row[&#39;typedir&#39;],$row[&#39;money&#39;],$row[&#39;filename&#39;],$row[&#39;moresite&#39;],$row[&#39;siteurl&#39;],$row[&#39;sitepath&#39;]); 
return $ReturnURL; 
}
登入後複製

2.而在模板中我們的調用方式的寫法也有所改變,程式碼如下:

{dede:loop table=&#39;dede_archives&#39; sort=&#39;&#39; row=&#39;4&#39; if=&#39;&#39;} 
<li>·<a href=&#39;[field:id function=IDReturnURL(@me)/]&#39;>[field:title function=cn_substrR(@me,44)/]</a></li> 
{/dede:loop}
登入後複製

問題已經完美解決了,同樣的當你要用自訂sql 標籤的時候,也是一樣的.

其實,就是用[field:id function= IDReturnURL(@me)/]取代了[field:arcurl/]標籤,我解決此問題的核心就是[field:id function=IDReturnURL(@me)/]和IDReturnURL.

後來自己想想於是再接著找發現了一個arclist標籤了,代碼如下:

{dede:arclist flag=&#39;h&#39; typeid=&#39;&#39; row=&#39;&#39; col=&#39;&#39; titlelen=&#39;&#39; infolen=&#39;&#39; imgwidth=&#39;&#39; imgheight=&#39;&#39; listtype=&#39;&#39; orderby=&#39;&#39; keyword=&#39;&#39; limit=&#39;0,1&#39;} 
<a href=&#39;[field:arcurl/]&#39;>[field:title/]</a> 
{/dede:arclist}
登入後複製

這樣我們可以直接使用如下代碼:

{dede:arclist row=&#39;10&#39; titlelen=&#39;24&#39; orderby=&#39;pubdate&#39; idlist=&#39;&#39; col=&#39;2&#39;} 
•[field:textlink/]([field:pubdate function=MyDate(&#39;m-d&#39;,@me)/])<br/> 
{/dede:arclist}
登入後複製

即可解決了.

希望本文所述對大家的dedecms建站有所幫助。

推薦教學:dedecms教學

#

以上是一招解決織夢Dedecms中萬用標籤loop不能輸入URL的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:www.jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板