背景

当typecho文章没有标签时文章标签调用分类( typecho的文章判断当前标签)

3周前 typecho帮助 12°C

typecho的tag的文档就这么一句

<?php $this->tags(',', true, 'none'); ?>

说明:(',', true, 'none') 第一个单引号间的逗号代表标签与标签的间隔用逗号隔开,true 是标签以超链接形式输出false则只输出文字,none 为该文章没有标签时显示的提示信息可为空。

简单用法
如果想给每个标签套上div或者span什么的就需要这要做

<div><?php $this->tags('</div><div>', true, 'none'); ?></div>

进阶用法
<?php $this->tags(',', true, 'none'); ?>其实也可以写成<?php $this->tags(); ?>,写成这样后默认依旧时逗号隔开的超链接形式的标签数组,只是这样不能自定义中间间隔了,但是这样可以做一些有趣的判断。

Typecho判断当前标签并自定义内容


<?php if( in_array('abc', $this->tags) ): ?>
文章含有abc标签就会显示这里
<?php endif; ?>

判断文章是否存在标签,如果存在输出标签,如果不存在输出该文章分类

<?php if(  count($this->tags) == 0 ): ?> //此处的count也可改为size
<?php $this->category(',', true, 'none'); ?>//文章分类
<?php else: ?>
<?php $this->tags(',', true, 'none'); ?>//文章标签
<?php endif; ?>

这个相对《当typecho文章没有标签时文章标签调用分类》好处就在于,只要是typecho博客就可以用,无需加载JQ。

其实$this->tags就是一个数组,上文就是用php来对数组进行的判断,进而实现的某些功能。


有替代品好过没有选择

如果你的typecho模版的文章中有文章标签这块内容,当文章没有设置标签一般都会显示“抱歉本文还未添加标签”,或许这样的致歉已经十分虔诚,可是还是挺不友好的,当然如果没有标签就让文章分类“伪装”成文章标签引导用户去阅读相关内容或者是帮助用户找到相关内容会不会是用户想要的呢?

获取“伪标签”代码


<?php if($this->is('post')): ?> 
    <h3>话题标签:</h3>
    <p class="tags"><?php $this->tags('', true, '<span>抱歉本文还未添加标签</span>'); ?></p>
    <script type="text/javascript">
        $(document).ready(function(){ 
            $('.tags span').replaceWith('<?php $this->category(','); ?>'); 
        });  
    </script>  
<?php endif; ?> 

代码分为2块,1:调用标签;2:将没有标签内容的文章插入分类伪装成标签。

注意:此js需要jq库的支持,如果模版本身没有添加jq库那么需要添加jq库。

版权声明:小站所有内容均为互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系删除。
本文链接:https://magicblue.cn/lost/15350.html
最后编辑: 23年09月15日

选择表情

网友评论

5个月前

所以说 这个主题官网挂了 应该在哪里买

6个月前

已经升1.2.1了

7个月前
头像 csp

抱抱

7个月前
头像 csp

有点惨啊

7个月前

支持支持一下