QQ爹の博客 QQ爹の博客

Typecho文章单独输出标签缩略名和标签名或(只输出第一个)

in Typecho read (827) 508汉字 文章转载请注明来源!

因为typecho论坛一个朋友需要这个,用QQ找到我了,然而尴尬的是我也不会,于是用了几天的时间百度神马的,终于找到相关方法了。

当前文章缩略图插件逻辑是这样的:如果文章含有图片附件(可能有多张图片),则直接取附件中的第一张图片作为文章缩略图;否则根据文章的分类缩略名取缩略图;如果上述两种情况的缩略图均不存在,则从插件中已存在的图片中随机一张图片作为当前文章的缩略图。

我一直打算把文章缩略图插件逻辑更改为:如果文章含有图片附件(可能有多张图片),则直接取附件中的第一张图片作为文章缩略图;否则根据文章标签中第一个标签的缩略名取缩略图;如果上述两种情况的缩略图均不存在,则根据文章的分类缩略名取缩略图,如果上述三种情况的缩略图均不存在,最后从插件中已存在的图片中随机一张图片作为当前文章的缩略图。

以上是我要取文章输出标签缩略名和标签名的原因,下面我讲解一下方法,先看以下代码:

function tags($widget, $split = ',', $default = NULL)
{
/** 取出tags */
if ($widget->tags) {
$result = array();
foreach ($widget->tags as $tag) {
$result[] = $tag['permalink'];
}
echo implode($split, $result);
} else {
echo $default;
}
}

以上是网上一篇单独输出tag链接地址的文章,这个跟Tag相关,然后在模版中调用方法

<?php tags($this); ?>

即可实现Tag链接地址输出。 按照以上的方法,因Tag有标签名(name)和标签缩略名(slug)字段,那么单独输出文章标签缩略名方法为:

function tags($widget, $split = ',', $default = NULL)
{
/** 取出tags */
if ($widget->tags) {
$result = array();
foreach ($widget->tags as $tag) {
$result[] = $tag['slug'];
}
echo implode($split, $result)
} else {
echo $default;
}
}

然后在模板中调用方法

<?php tags($this); ?>

即可,如果你只想取文章标签中的第一个标签,则将方法改为:

function tags($widget,  $default = NULL)
{
/** 取出tags */
if ($widget->tags) {
foreach ($widget->tags as $tag) {
echo $tag['slug'];
break;
}
} else {
echo $default;
}
}

若需要单独输出标签名,则将以上标签缩略名方法中的“slug”改为“name”即可。
by 彭智勇原创
文章转自http://t.160.me/56.html

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

typecho标签tag
最后由Jrotty编辑于2016-03-28 22:20
发表新评论
已有 5 条评论
  1. ClayMoreBoy
    ClayMoreBoy
    回复

    我是说你转载的网站是采集的

    1. 近泽
      近泽
      回复

      @ClayMoreBoy 找到了,嘿嘿,你那个站我也总浏览居然没注意到这篇文章

    2. 近泽
      近泽
      回复

      @ClayMoreBoy 哦!,那这篇文章真正的出处在哪里啊?我改下![嘻嘻]

  2. ClayMoreBoy
    ClayMoreBoy
    回复

    http://www.pxsky.net/about.html#comment-832

    1. 近泽
      近泽
      回复

      @ClayMoreBoy 我只是转载一些比较有用的,当然转载都写名了出处!不知道你给我看这个干嘛

前篇 后篇
雷姆
拉姆
音乐加载中...
0:00