程家阳 發表於 2024-2-23 00:00:00

dedecms随机调用文章数据方法汇总

<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        本文实例总结了dedecms随机调用文章数据方法。分享给大家供大家参考。具体分析如下:</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        有时我们为了网站优化都会对网站最后一些文章进行随机读取显示,这样可以提高网站对搜索引擎的体验,下面我们就来分析总结一下dedecms随机调用文章数据方法.</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        方法一,直接利用artlist中的orderyb=rand 即可实例,代码如下:<br>
         </p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
        <div class="right">
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div class="msgborder" id="phpcode19" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
        {dede:arclist row=10 orderby=rand} <br>
        &lt;li&gt;&lt;a href="" target="_blank"&gt;&lt;/a&gt;&lt;/li&gt;{/dede:arclist}</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>方法二,利用自定做法</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
         </p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        1.增加以下dedecms自定义标签 randarc,代码如下:<br>
         </p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
        <div class="right">
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div class="msgborder" id="phpcode20" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
        function lib_randarc(&amp;$ctag , &amp;$refObj){ <br>
        global $dsql; <br>
        FillAttsDefault($ctag-&gt;CAttribute-&gt;Items ,"limit|1"); <br>
        extract($ctag-&gt;CAttribute-&gt;Items); <br>
        $s = ''; <br>
        $tcp = new DedeTagParse(); <br>
        $tcp-&gt;SetNameSpace("field",'[',']'); <br>
        $tcp-&gt;LoadSource($ctag-&gt;GetInnerText()); <br>
        $sql = $query = "SELECT se.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath <br>
        FROM `dede_archives` se LEFT JOIN `dede_arctype` tp ON se.typeid=tp.id WHERE 1 order by rand() limit $limit"; <br>
        $dsql-&gt;Execute("f",$sql); <br>
        while($row1 = $dsql-&gt;GetArray("f")){ <br>
        $row1['arcurl'] = GetFileUrl($row1['id'],$row1['typeid'],$row1['senddate'],$row1['title'], <br>
        $row1['ismake'], <br>
        $row1['arcrank'],$row1['namerule'],$row1['typedir'],$row1['money'], <br>
        $row1['filename'],$row1['moresite'],$row1['siteurl'],$row1['sitepath']); <br>
        foreach($tcp-&gt;CTags as $k =&gt; $v ){ <br><br>
        $tcp-&gt;Assign($k , $row1[$v-&gt;GetName()]); <br>
        } <br>
        $s.=$tcp-&gt;GetResult(); <br>
        } <br>
        return $s; <br>
        }</div>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>2.在dedecms文章模板中调用,代码如下:</span><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
        <div class="right">
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div class="msgborder" id="phpcode21" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
        {dede:randarc limit=1}&lt;a href=&gt;&lt;/a&gt;{/dede:randarc}</div>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
         </p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        这样很简单的就完成了dedecms文章页面随机调用一篇文章的功能</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        首页随机调用文章并定时自动更新</p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        要实现DEDE首页自动更新的前提是网站首页必须有随机文章,对于随机文章不懂的朋友看这里实现DEDE首页内页随机文章列表代码,熟悉的直接跳过,代码如下:</p>
<blockquote>
        <ol class="dp-xml">
<li class="alt">
                        <span><span>{dede:arclist </span><span class="attribute">sort</span><span>=</span><span class="attribute-value">'rand'</span><span> </span><span class="attribute">titlelen</span><span>=</span><span class="attribute-value">48</span><span> </span><span class="attribute">row</span><span>=</span><span class="attribute-value">16</span><span>}  </span></span>
</li>
                <li>
                        <span><span class="tag">&lt;</span><span class="tag-name">li</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">""</span><span> </span><span class="attribute">title</span><span>=</span><span class="attribute-value">""</span><span> </span><span class="attribute">target</span><span>=</span><span class="attribute-value">"_blank"</span><span class="tag">&gt;</span><span></span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>  </span></span>
</li>
                <li class="alt">
                        <span>{/dede:arclist} </span>
</li>
        </ol>
</blockquote>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>这时首页每次更新的内容来源就有了,只是还不会自动生成更新的html文件,下面来说让dede自动生成首页的具体方法.</span>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
         </p>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        把下面的代码复制下来新建一个文本文档粘贴保存,然后把文件名改为rrsc_cn.php中的,上传到根目录,修改首页模板,在网站首页的&lt;head&gt;&lt;/head&gt;这部分加入这段代码,然后更新首页,代码如下:</p>
<blockquote>
        <ol class="dp-c">
<li class="alt">
                        <span><span>&lt;?php  </span></span>
</li>
                <li>
                        <span><span class="keyword">function</span><span> sp_input( </span><span class="vars">$text</span><span> )  </span></span>
</li>
                <li class="alt">
                        <span>{  </span>
</li>
                <li>
                        <span><span class="vars">$text</span><span> = trim( </span><span class="vars">$text</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$text</span><span> = htmlspecialchars( </span><span class="vars">$text</span><span> );  </span></span>
</li>
                <li>
                        <span><span class="keyword">if</span><span> ( !get_magic_quotes_gpc() )  </span></span>
</li>
                <li class="alt">
                        <span><span class="keyword">return</span><span> </span><span class="func">addslashes</span><span>( </span><span class="vars">$text</span><span> );  </span></span>
</li>
                <li>
                        <span><span class="keyword">else</span><span>  </span></span>
</li>
                <li class="alt">
                        <span><span class="keyword">return</span><span> </span><span class="vars">$text</span><span>;  </span></span>
</li>
                <li>
                        <span>}  </span>
</li>
                <li class="alt">
                        <span><span class="vars">$autotime</span><span> = 300;</span><span class="comment">//自动更新时间,单位为秒,这里我设为5分钟,大家可以自行更改。 </span><span> </span></span>
</li>
                <li>
                        <span><span class="vars">$fpath</span><span> = </span><span class="string">"../data/last_time.inc"</span><span>;</span><span class="comment">//记录更新时间文件,如果不能达到目的,请检查是否有读取权限。 </span><span> </span></span>
</li>
                <li class="alt">
                        <span><span class="keyword">include</span><span>( </span><span class="vars">$fpath</span><span> );  </span></span>
</li>
                <li>
                        <span><span class="keyword">if</span><span>( emptyempty(</span><span class="vars">$last_time</span><span>) )  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$last_time</span><span> = 0;  </span></span>
</li>
                <li>
                        <span><span class="keyword">if</span><span>( sp_input(</span><span class="vars">$_GET</span><span>[</span><span class="string">'renew'</span><span>])==</span><span class="string">"now"</span><span> )  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$last_time</span><span> = 0;  </span></span>
</li>
                <li>
                        <span><span class="keyword">if</span><span>( (time()-</span><span class="vars">$last_time</span><span>)&gt;=</span><span class="vars">$autotime</span><span> )  </span></span>
</li>
                <li class="alt">
                        <span>{  </span>
</li>
                <li>
                        <span>define(<span class="string">'DEDEADMIN'</span><span>, </span><span class="func">ereg_replace</span><span>(</span><span class="string">"[/]{1,}"</span><span>,</span><span class="string">'/'</span><span>,dirname(</span><span class="keyword">__FILE__</span><span>) ) );  </span></span>
</li>
                <li class="alt">
                        <span><span class="keyword">require_once</span><span>(DEDEADMIN.</span><span class="string">"/../include/common.inc.php"</span><span>);  </span></span>
</li>
                <li>
                        <span><span class="keyword">require_once</span><span>(DEDEINC.</span><span class="string">"/arc.partview.class.php"</span><span>);  </span></span>
</li>
                <li class="alt">
                        <span><span class="comment">/* </span> </span>
</li>
                <li>
                        <span><span class="comment">$row = $dsql-&gt;GetOne("Select * From dede_homepageset"); </span> </span>
</li>
                <li class="alt">
                        <span><span class="comment">$dsql-&gt;Close(); </span> </span>
</li>
                <li>
                        <span><span class="comment">$templet=$row['templet']; </span> </span>
</li>
                <li class="alt">
                        <span><span class="comment">$position=$row['position']; </span> </span>
</li>
                <li>
                        <span><span class="comment">*/</span><span>  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$templet</span><span> = </span><span class="string">"default/index.htm"</span><span>;</span><span class="comment">//这里是首页模板位置,当前是dede默认首面位置。 </span><span> </span></span>
</li>
                <li>
                        <span><span class="vars">$position</span><span> = </span><span class="string">"../index.html"</span><span>;  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$homeFile</span><span> = dirname(</span><span class="keyword">__FILE__</span><span>).</span><span class="string">"/"</span><span>.</span><span class="vars">$position</span><span>;  </span></span>
</li>
                <li>
                        <span><span class="vars">$homeFile</span><span> = </span><span class="func">str_replace</span><span>( </span><span class="string">""</span><span>, </span><span class="string">"/"</span><span>, </span><span class="vars">$homeFile</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$homeFile</span><span> = </span><span class="func">str_replace</span><span>( </span><span class="string">"//"</span><span>, </span><span class="string">"/"</span><span>, </span><span class="vars">$homeFile</span><span> );  </span></span>
</li>
                <li>
                        <span><span class="vars">$pv</span><span> = </span><span class="keyword">new</span><span> PartView();  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$pv</span><span> -&gt; SetTemplet( </span><span class="vars">$cfg_basedir</span><span>.</span><span class="vars">$cfg_templets_dir</span><span>.</span><span class="string">"/"</span><span>.</span><span class="vars">$templet</span><span> );  </span></span>
</li>
                <li>
                        <span><span class="vars">$pv</span><span> -&gt; SaveToHtml( </span><span class="vars">$homeFile</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span><span class="vars">$pv</span><span> -&gt; Close();  </span></span>
</li>
                <li>
                        <span><span class="vars">$file</span><span> = </span><span class="func">fopen</span><span>( </span><span class="vars">$fpath</span><span>, </span><span class="string">"w"</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">"&lt;?phpn"</span><span> );  </span></span>
</li>
                <li>
                        <span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">"$last_time="</span><span>.time().</span><span class="string">";n"</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span>fwrite( <span class="vars">$file</span><span>, </span><span class="string">'?&gt;'</span><span> );  </span></span>
</li>
                <li>
                        <span>fclose( <span class="vars">$file</span><span> );  </span></span>
</li>
                <li class="alt">
                        <span>}  </span>
</li>
                <li>
                        <span>?&gt; </span>
</li>
        </ol>
</blockquote>
<p style='margin: 0px; padding: 5px 0px; outline: none; font-size: 14px; line-height: 30px; font-family: tahoma, arial, "Microsoft YaHei";'>
        希望本文所述对大家的dedecms建站有所帮助。</p>
頁: [1]
查看完整版本: dedecms随机调用文章数据方法汇总