首页 » 收集 » 正文内容
typecho多次输出标签时参数失效问题
寻梦xunm| 367| 收集
1年前
超过570天 温馨提示
本文最后更新于2023年02月28日,已超过570天没有更新,若内容或图片失效,请留言反馈。

主题改版后发现了一个问题,我在主页的导航栏用的是标签,输出12个标签(按标签下文章数量排序,文章最多的12个标签),最近加了个侧边栏并在侧边栏里加了标签云的效果,这儿输出30个标签(标签总数大于12个小于30个的),但无论怎么改参数,侧边栏的标签云输出的标签个数始终和导航栏标签数一致,好像用的是同一个输出。

我试着把侧边栏标签云的输出用的数组变量改名,改变不了数量,第二次引用的标签数总会和第一次引用的一样!不论第二次引用时limit数改为多少。

去typecho的github提问也没有人回答,后来在SegmentFault上提问才得知是typecho的内置功能,具体代码今天终于有空翻腾一会代码,找到了如下别名的几句,原来是这样处理的。
var/Typecho/Widget.php

$parts = explode('@', $alias);
$className = $parts[0];
$alias = empty($parts[1]) ? $className : $parts[1];

导航代码:

<?php $this->widget('Widget_Metas_Tag_Cloud', array('sort' => 'count', 'ignoreZeroCount' => true, 'desc' => true, 'limit' => 12))->to($tags); ?>  
            <?php while($tags->next()): ?>  
            <li><a rel="tag" href="<?php $tags->permalink(); ?>"  title="<?php $tags->name(); ?>"><?php $tags->name(); ?></a></li>
            <?php endwhile; ?>

侧边栏标签云代码:

<?php $this->widget('Widget_Metas_Tag_Cloud', 'ignoreZeroCount=1&limit=30')->to($tags); ?>
                    <ul>
                    <?php while($tags->next()): ?>
                        <li><a style="color: rgb(<?php echo(rand(0, 255)); ?>, <?php echo(rand(0,255)); ?>, <?php echo(rand(0, 255)); ?>)" href="<?php $tags->permalink(); ?>" target="_blank"><?php $tags->name(); ?></a></li>
                    <?php endwhile; ?>

修改方法:在widget里后面加上@任意不同字符串即可,内置功能,有空再翻腾源码找找为什么吧,现在先这样改了好用了就好。

导航代码:

<?php $this->widget('Widget_Metas_Tag_Cloud@nav', array('sort' => 'count', 'ignoreZeroCount' => true, 'desc' => true, 'limit' => 12))->to($tags); ?>  
            <?php while($tags->next()): ?>  
            <li><a rel="tag" href="<?php $tags->permalink(); ?>"  title="<?php $tags->name(); ?>"><?php $tags->name(); ?></a></li>
            <?php endwhile; ?>

侧边栏标签云代码:

<?php $this->widget('Widget_Metas_Tag_Cloud@bar', 'ignoreZeroCount=1&limit=30')->to($tags); ?>
                    <ul>
                    <?php while($tags->next()): ?>
                        <li><a style="color: rgb(<?php echo(rand(0, 255)); ?>, <?php echo(rand(0,255)); ?>, <?php echo(rand(0, 255)); ?>)" href="<?php $tags->permalink(); ?>" target="_blank"><?php $tags->name(); ?></a></li>
                    <?php endwhile; ?>

文章来源于:https://www.amkevin.com/218.html

0 赞 or 打赏
喜欢就打赏一点
微信 支付宝
隐私
Q Q:1340326824
邮箱:vipshiyi@qq.com
QQ群:422720328

我的音乐

微博客-专为自己编写开发的源码