[已解决][感谢DT27]求助,想实现标签页面的两个小功能。

讨论程序使用中的问题
回复
grubfx
帖子: 7
注册时间: 2014年 5月 9日 14:19
联系:

[已解决][感谢DT27]求助,想实现标签页面的两个小功能。

帖子 grubfx »

各位技术大拿好,求助一个标签页面的问题。这个标签页面,http://blog.y2fx.com/Tags.html ,我想让标签在这里不以“标签云”的形式列出,而是一行四列,整齐排列;另外还想让标签按照首字母顺序排列,请教该怎么做。
我自己费了好大劲,才在标签后面添加了文章数量。排列的问题实在是能力不及了。
谢谢!
上次由 grubfx 在 2016年 6月 1日 17:25,总共编辑 1 次。
头像
DT27
帖子: 83
注册时间: 2016年 2月 23日 19:48
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 DT27 »

所有标签放到数组中,对数组进行排序。
GBK编码的中文数组用asort排序后就会按拼音排序。
Typecho默认是UTF-8编码,所以把数组中的值都转为GBK排序后再转回来就好了。

代码: 全选

//$array为存放标签名的数组
foreach ($array as $key=>$value)
{
    //转为GBK
    $new_array[$key] = iconv('UTF-8', 'GBK', $value);
}
//排序
asort($new_array);
foreach ($new_array as $key=>$value)
{
    //转回UTF-8
    $array[$key] = iconv('GBK', 'UTF-8', $value);
}


一行四列,你把每个标签宽度设置25%就行了。
grubfx
帖子: 7
注册时间: 2014年 5月 9日 14:19
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 grubfx »

非常感谢,请接受我无以伦比的崇敬!
就是,我不知道这些代码怎么用,上面那些代码是放在tags.php中吗?
宽度我在style.css里面
#tag_cloud{margin-bottom: 1em;}
#tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
这两个地方后面添加width:25% 好像都没起作用,是不是添加错了?
不好意思,实在是零基础。
头像
DT27
帖子: 83
注册时间: 2016年 2月 23日 19:48
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 DT27 »

grubfx 写了:非常感谢,请接受我无以伦比的崇敬!
就是,我不知道这些代码怎么用,上面那些代码是放在tags.php中吗?
宽度我在style.css里面
#tag_cloud{margin-bottom: 1em;}
#tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
这两个地方后面添加width:25% 好像都没起作用,是不是添加错了?
不好意思,实在是零基础。


CSS:

代码: 全选

#tag_cloud {
    margin-bottom: 1em;
    overflow: hidden;
}
#tag_cloud a {
    display: block;
    float: left;
    width: 25%;
}


你的tags是怎么获取的,得根据你获取tags的数组来写代码。。。
grubfx
帖子: 7
注册时间: 2014年 5月 9日 14:19
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 grubfx »

谢谢,我都觉得不好意思。这是css里面的,麻烦你帮我看下:

代码: 全选

#tag_cloud{margin-bottom: 1em;}
#tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
.listing-item,.listing-seperator{list-style-type:none;}
.listing-item a{padding:.2em 1em;}
.listing-item time{color:#999999;}
.listing-seperator{font-weight:bold;}
.meta{text-align:right;font-size:12px;}
header{padding:.5em 0;border-bottom: 1px solid #cccccc;}
nav{font-family:"Electrolize",sans-serif;font-size:1.1em;text-transform:uppercase;float:left;margin-left:-12em; width:9em;}
nav a{display:block;padding:.7em 1em;color:#000000;}
nav a:hover{background-color:#ff0000;text-decoration:none;color:#f9f9f9;-webkit-transition:color .2s linear;}


这个是tags.php,

代码: 全选

<?php
/**
* tags
*
* @package custom
*/
?>

<?php $this->need('header.php'); ?>


   
        <article class="content">
        <section class="post">
<div id='tag_cloud'>

         <?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&desc=0')->to($tags); ?>
<?php if($tags->have()): ?>
<?php while ($tags->next()): ?>
   <a href="<?php $tags->permalink(); ?>" rel="tag" class="size-<?php $tags->split(5, 10, 20, 30); ?>" title="<?php $tags->count(); ?> 个话题"><?php $tags->name(); ?>[<?php $tags->count(); ?>]</a>
<?php endwhile; ?>
<?php else: ?>
   <li><?php _e('没有任何标签'); ?></li>
<?php endif; ?>

</div>
</section>

   <?php $this->need('footer.php'); ?>
头像
DT27
帖子: 83
注册时间: 2016年 2月 23日 19:48
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 DT27 »

grubfx 写了:谢谢,我都觉得不好意思。这是css里面的,麻烦你帮我看下:

代码: 全选

#tag_cloud{margin-bottom: 1em;}
#tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
.listing-item,.listing-seperator{list-style-type:none;}
.listing-item a{padding:.2em 1em;}
.listing-item time{color:#999999;}
.listing-seperator{font-weight:bold;}
.meta{text-align:right;font-size:12px;}
header{padding:.5em 0;border-bottom: 1px solid #cccccc;}
nav{font-family:"Electrolize",sans-serif;font-size:1.1em;text-transform:uppercase;float:left;margin-left:-12em; width:9em;}
nav a{display:block;padding:.7em 1em;color:#000000;}
nav a:hover{background-color:#ff0000;text-decoration:none;color:#f9f9f9;-webkit-transition:color .2s linear;}


这个是tags.php,

代码: 全选

<?php
/**
* tags
*
* @package custom
*/
?>

<?php $this->need('header.php'); ?>


   
        <article class="content">
        <section class="post">
<div id='tag_cloud'>

         <?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&desc=0')->to($tags); ?>
<?php if($tags->have()): ?>
<?php while ($tags->next()): ?>
   <a href="<?php $tags->permalink(); ?>" rel="tag" class="size-<?php $tags->split(5, 10, 20, 30); ?>" title="<?php $tags->count(); ?> 个话题"><?php $tags->name(); ?>[<?php $tags->count(); ?>]</a>
<?php endwhile; ?>
<?php else: ?>
   <li><?php _e('没有任何标签'); ?></li>
<?php endif; ?>

</div>
</section>

   <?php $this->need('footer.php'); ?>




刚才论坛出问题了,才恢复。
折腾了好久,代码给你写出来了:
CSS部分,只改了顶部,注释了一行,加了两行。

代码: 全选

    /*#tag_cloud{margin-bottom: 1em;}*/
    #tag_cloud{margin-bottom: 1em;overflow: hidden;}
    #tag_cloud a{display: block;float: left;width: 25%;}
    #tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
    .listing-item,.listing-seperator{list-style-type:none;}
    .listing-item a{padding:.2em 1em;}
    .listing-item time{color:#999999;}
    .listing-seperator{font-weight:bold;}
    .meta{text-align:right;font-size:12px;}
    header{padding:.5em 0;border-bottom: 1px solid #cccccc;}
    nav{font-family:"Electrolize",sans-serif;font-size:1.1em;text-transform:uppercase;float:left;margin-left:-12em; width:9em;}
    nav a{display:block;padding:.7em 1em;color:#000000;}
    nav a:hover{background-color:#ff0000;text-decoration:none;color:#f9f9f9;-webkit-transition:color .2s linear;}


页面显示部分

代码: 全选

        <div id='tag_cloud'>

            <?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&desc=0')->to($tags); ?>
            <?php if($tags->have()): ?>
                <?php
                //提取Tags多维数组
                $multi_array = $tags->stack;

                //提取出排序列,并转为GBK编码以支持中文排序
                foreach ($multi_array as $row_array){
                    $sort_array[] = iconv('UTF-8', 'GBK', $row_array["name"]);
                }

                //按排序列对多维数组按排序列排序,排序时忽略大小写
                array_multisort(array_map('strtolower', $sort_array),$multi_array);
                ?>
                <?php foreach($multi_array as $array){?>
                    <a href="<?php echo $array['permalink']; ?>" rel="tag" title="<?php echo $array['count']; ?> 个话题"><?php echo $array['name']; ?>[<?php echo $array['count']; ?>]</a>
                <?php }; ?>
            <?php else: ?>
                <li><?php _e('没有任何标签'); ?></li>
            <?php endif; ?>
        </div>
grubfx
帖子: 7
注册时间: 2014年 5月 9日 14:19
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 grubfx »

DT27 写了:
grubfx 写了:谢谢,我都觉得不好意思。这是css里面的,麻烦你帮我看下:

代码: 全选

#tag_cloud{margin-bottom: 1em;}
#tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
.listing-item,.listing-seperator{list-style-type:none;}
.listing-item a{padding:.2em 1em;}
.listing-item time{color:#999999;}
.listing-seperator{font-weight:bold;}
.meta{text-align:right;font-size:12px;}
header{padding:.5em 0;border-bottom: 1px solid #cccccc;}
nav{font-family:"Electrolize",sans-serif;font-size:1.1em;text-transform:uppercase;float:left;margin-left:-12em; width:9em;}
nav a{display:block;padding:.7em 1em;color:#000000;}
nav a:hover{background-color:#ff0000;text-decoration:none;color:#f9f9f9;-webkit-transition:color .2s linear;}


这个是tags.php,

代码: 全选

<?php
/**
* tags
*
* @package custom
*/
?>

<?php $this->need('header.php'); ?>


   
        <article class="content">
        <section class="post">
<div id='tag_cloud'>

         <?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&desc=0')->to($tags); ?>
<?php if($tags->have()): ?>
<?php while ($tags->next()): ?>
   <a href="<?php $tags->permalink(); ?>" rel="tag" class="size-<?php $tags->split(5, 10, 20, 30); ?>" title="<?php $tags->count(); ?> 个话题"><?php $tags->name(); ?>[<?php $tags->count(); ?>]</a>
<?php endwhile; ?>
<?php else: ?>
   <li><?php _e('没有任何标签'); ?></li>
<?php endif; ?>

</div>
</section>

   <?php $this->need('footer.php'); ?>




刚才论坛出问题了,才恢复。
折腾了好久,代码给你写出来了:
CSS部分,只改了顶部,注释了一行,加了两行。

代码: 全选

    /*#tag_cloud{margin-bottom: 1em;}*/
    #tag_cloud{margin-bottom: 1em;overflow: hidden;}
    #tag_cloud a{display: block;float: left;width: 25%;}
    #tag_cloud a:hover{color:#333333 !important;text-decoration:none;}
    .listing-item,.listing-seperator{list-style-type:none;}
    .listing-item a{padding:.2em 1em;}
    .listing-item time{color:#999999;}
    .listing-seperator{font-weight:bold;}
    .meta{text-align:right;font-size:12px;}
    header{padding:.5em 0;border-bottom: 1px solid #cccccc;}
    nav{font-family:"Electrolize",sans-serif;font-size:1.1em;text-transform:uppercase;float:left;margin-left:-12em; width:9em;}
    nav a{display:block;padding:.7em 1em;color:#000000;}
    nav a:hover{background-color:#ff0000;text-decoration:none;color:#f9f9f9;-webkit-transition:color .2s linear;}


页面显示部分

代码: 全选

        <div id='tag_cloud'>

            <?php $this->widget('Widget_Metas_Tag_Cloud', 'sort=mid&desc=0')->to($tags); ?>
            <?php if($tags->have()): ?>
                <?php
                //提取Tags多维数组
                $multi_array = $tags->stack;

                //提取出排序列,并转为GBK编码以支持中文排序
                foreach ($multi_array as $row_array){
                    $sort_array[] = iconv('UTF-8', 'GBK', $row_array["name"]);
                }

                //按排序列对多维数组按排序列排序,排序时忽略大小写
                array_multisort(array_map('strtolower', $sort_array),$multi_array);
                ?>
                <?php foreach($multi_array as $array){?>
                    <a href="<?php echo $array['permalink']; ?>" rel="tag" title="<?php echo $array['count']; ?> 个话题"><?php echo $array['name']; ?>[<?php echo $array['count']; ?>]</a>
                <?php }; ?>
            <?php else: ?>
                <li><?php _e('没有任何标签'); ?></li>
            <?php endif; ?>
        </div>


非常非常非常感谢!今天多亏了你!!已经完美显示。我再也不折腾了,要不就等于给别人添麻烦,下一步就踏踏实实写内容了。
真的非常非常感谢。
头像
DT27
帖子: 83
注册时间: 2016年 2月 23日 19:48
联系:

Re: 求助,想实现标签页面的两个小功能。

帖子 DT27 »

grubfx 写了:非常非常非常感谢!今天多亏了你!!已经完美显示。我再也不折腾了,要不就等于给别人添麻烦,下一步就踏踏实实写内容了。
真的非常非常感谢。


不客气 :D
很高兴能帮到~
头像
ClayMore
帖子: 2483
注册时间: 2007年 11月 29日 02:55
来自: Sleeping Forest
联系:

Re: [已解决][感谢DT27]求助,想实现标签页面的两个小功能。

帖子 ClayMore »

收藏了 以后有用


__________________

新版阿里百秀Alibaixiu主题 v11.1 For Typecho
http://xiu.160.me/
gdhzkk
帖子: 64
注册时间: 2016年 5月 30日 10:54
联系:

Re: [已解决][感谢DT27]求助,想实现标签页面的两个小功能。

帖子 gdhzkk »

请问内容页的文章tag怎样显示有多少个话题?
回复