# 如何实现织梦cms上一篇下一篇自由可控输出链接、标题、缩略图、时间

*Published:* 2023-07-12
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年7月12日，已超过 180天没有更新



在不影响程序原来功能的基础下，二次开发让上一篇下一篇标签自由可控地输出链接、[标题](https://www.xarjtc.com/tag/%e6%a0%87%e9%a2%98 "查看标题此标签更多文章")、[缩略图](https://www.xarjtc.com/tag/%e7%bc%a9%e7%95%a5%e5%9b%be "查看缩略图此标签更多文章")、[时间](https://www.xarjtc.com/tag/%e6%97%b6%e9%97%b4 "查看时间此标签更多文章")，没有上一篇或者下一篇时不输出任何东西

打开 /include/arc.archives.class.php 找到 大概在 735 行左右的

```php
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>($ctag->GetName()==<span class="hljs-string">'fieldlist'</span>)
```

在上面加入

```php
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>($ctag->GetName()==<span class="hljs-string">'prenextdiy'</span>)
{
	$innertext = trim($ctag->GetInnerText());
	<span class="hljs-keyword">if</span>($innertext)
	{
		$get = $ctag->GetAtt(<span class="hljs-string">'get'</span>);
		$diys[<span class="hljs-string">'diy'</span>] = $this->GetPreNext(<span class="hljs-string">'diy'</span>);
		$revalue = <span class="hljs-string">''</span>;
		$dtp2 = <span class="hljs-keyword">new</span> DedeTagParse();
		$dtp2->SetNameSpace(<span class="hljs-string">'field'</span>,<span class="hljs-string">'['</span>,<span class="hljs-string">']'</span>);
		$dtp2->LoadSource($innertext);
		<span class="hljs-keyword">foreach</span>($diys <span class="hljs-keyword">as</span> $row)
		{
			<span class="hljs-keyword">foreach</span>($dtp2->CTags <span class="hljs-keyword">as</span> $tid=>$ctag2)
			{
				<span class="hljs-keyword">if</span>(<span class="hljs-keyword">isset</span>($row[$get][$ctag2->GetName()]))
				{
					$dtp2->Assign($tid,$row[$get][$ctag2->GetName()]);
				}
			}
			$revalue .= $dtp2->GetResult();
		}
		<span class="hljs-keyword">if</span>($row[$get][<span class="hljs-string">'id'</span>]) $this->dtp->Assign($i,$revalue);
	}
}
```

继续找到，大概在852行左右的

```php
$this->PreNext[<span class="hljs-string">'pre'</span>] = <span class="hljs-string">"上一篇：<a href='$mlink'>{$preRow['title']}</a> "</span>;
```

在上面加入

```php
$preRow[<span class="hljs-string">'litpic'</span>] = (<span class="hljs-keyword">empty</span>($preRow[<span class="hljs-string">'litpic'</span>])) ? $GLOBALS[<span class="hljs-string">'cfg_cmspath'</span>].<span class="hljs-string">'/images/defaultpic.gif'</span> : $preRow[<span class="hljs-string">'litpic'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'pre'</span>][<span class="hljs-string">'id'</span>] = $preRow[<span class="hljs-string">'id'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'pre'</span>][<span class="hljs-string">'arcurl'</span>] = $mlink;
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'pre'</span>][<span class="hljs-string">'title'</span>] = $preRow[<span class="hljs-string">'title'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'pre'</span>][<span class="hljs-string">'litpic'</span>] = $preRow[<span class="hljs-string">'litpic'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'pre'</span>][<span class="hljs-string">'pubdate'</span>] = $preRow[<span class="hljs-string">'senddate'</span>];
```

继续找到，大概在875行左右的

```php
$this->PreNext[<span class="hljs-string">'next'</span>] = <span class="hljs-string">"下一篇：<a href='$mlink'>{$nextRow['title']}</a> "</span>;
```

在上面加入

```php
$nextRow[<span class="hljs-string">'litpic'</span>] = (<span class="hljs-keyword">empty</span>($nextRow[<span class="hljs-string">'litpic'</span>])) ? $GLOBALS[<span class="hljs-string">'cfg_cmspath'</span>].<span class="hljs-string">'/images/defaultpic.gif'</span> : $nextRow[<span class="hljs-string">'litpic'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'next'</span>][<span class="hljs-string">'id'</span>] = $nextRow[<span class="hljs-string">'id'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'next'</span>][<span class="hljs-string">'arcurl'</span>] = $mlink;
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'next'</span>][<span class="hljs-string">'title'</span>] = $nextRow[<span class="hljs-string">'title'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'next'</span>][<span class="hljs-string">'litpic'</span>] = $nextRow[<span class="hljs-string">'litpic'</span>];
$this->PreNext[<span class="hljs-string">'diy'</span>][<span class="hljs-string">'next'</span>][<span class="hljs-string">'pubdate'</span>] = $nextRow[<span class="hljs-string">'senddate'</span>];
```

继续找到，大概在 889 行左右的

```php
<span class="hljs-keyword">if</span>($gtype==<span class="hljs-string">'pre'</span>)
```

在上面加入

```php
<span class="hljs-keyword">if</span>($gtype==<span class="hljs-string">'diy'</span>)
{
	<span class="hljs-keyword">return</span> $this->PreNext[<span class="hljs-string">'diy'</span>];
}
```

内容页模板里上一篇下一篇调用标签写法 dede:prenextdiy

```html
上一篇
{dede:prenextdiy get='pre'}
<span class="hljs-tag"><<span class="hljs-name">li</span>></span>
	<span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"[field:arcurl/]"</span>></span><span class="hljs-tag"><<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"[field:litpic/]"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"50"</span> <span class="hljs-attr">height</span>=<span class="hljs-string">"50"</span>></span><span class="hljs-tag"></<span class="hljs-name">a</span>></span>
	<span class="hljs-tag"><<span class="hljs-name">p</span>></span><span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"[field:arcurl/]"</span>></span>[field:title/]<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"><<span class="hljs-name">span</span>></span>时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]<span class="hljs-tag"></<span class="hljs-name">span</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span>
<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
{/dede:prenextdiy}

下一篇
{dede:prenextdiy get='next'}
<span class="hljs-tag"><<span class="hljs-name">li</span>></span>
	<span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"[field:arcurl/]"</span>></span><span class="hljs-tag"><<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"[field:litpic/]"</span> <span class="hljs-attr">width</span>=<span class="hljs-string">"50"</span> <span class="hljs-attr">height</span>=<span class="hljs-string">"50"</span>></span><span class="hljs-tag"></<span class="hljs-name">a</span>></span>
	<span class="hljs-tag"><<span class="hljs-name">p</span>></span><span class="hljs-tag"><<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"[field:arcurl/]"</span>></span>[field:title/]<span class="hljs-tag"></<span class="hljs-name">a</span>></span><span class="hljs-tag"><<span class="hljs-name">span</span>></span>时间:[field:pubdate function="MyDate('Y-m-d',@me)"/]<span class="hljs-tag"></<span class="hljs-name">span</span>></span><span class="hljs-tag"></<span class="hljs-name">p</span>></span>
<span class="hljs-tag"></<span class="hljs-name">li</span>></span>
{/dede:prenextdiy} 
```