typecho如何获取 父级分类 名称?

typecho如何获取 父级分类 名称?,第1张

首页在模板目录建立一个 category 文件夹,将分类模板文件放到这个目录内,如 Prints.php

以下是分类模板样本:

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

<div class="main_zpliebiao1">

<?php if ($this->have()): ?> 不可删

<?php while($this->next()): ?> 不可删

<a href="<?php $this->permalink() ?>" title="<?php $this->title() ?>"><?php $this->content()?></a>

<?php endwhile?> 结尾

<?php else: ?>

<?php endif?>

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

然后在后台创建分类,分类的缩略名必需是分类模板的名字如分类模板名为Prints.php那么分类缩略名必需是Prints才行。然后在post.php页调用以下代码。

<!-- blog -->

<?php if ($this->category == 'blog') { ?>

<div><h4><?php $this->title() ?></h4></div>

<div><?php $this->author()?><?php ('October')?><?php $this->date('F j, Y')?></div>

<div><?php $this->content('Continue Reading...')?></div>

<div class="clear"></div>

<?php if (empty($this->options->sidebarBlock) || in_array('ShowRecentPosts', $this->options->sidebarBlock)): ?>

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

<?php endif?>

<!-- zhoupin -->

<?php } elseif ($this->category == 'zhoupin') { ?>

<div><span><?php $this->content()?></span></div>

<!-- end #zhoupin-->

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

<?php } elseif ($this->category == 'Prints') { ?>

<div><span><?php $this->content()?></span></div>

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

<!-- end #Prints -->

<?php } ?>

<?php if ($this->category == 'News') { ?>

<div><h2><?php $this->title() ?><br/><?php ('October')?><?php $this->date('F j, Y')?></h2></div>

<div><?php $this->content()?></div>

<!-- News -->

<?php if (empty($this->options->sidebarBlock) || in_array('ShowRecentPosts', $this->options->sidebarBlock)): ?>

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

<?php endif?>

<?php } ?>

创建分类方法二

一、不同分类输出不同模板

先在当前模板目录下建立一个 category 目录,然后比如你要给 slug 为 default 的分类专门建立模板,那么就在 category 目录下创建一个名为 default.php 的文件,这样程序在访问 default 分类时会自动调用这个模板文件。

使用 $this->categories 和 $this->category 这两个变量就可以满足你的需要了,不过需要你自己手动循环输出。你可以 print_r 一下这两个变量,看看它们的结构。

二、post页调用方法

<?php if ($this->category == "分类A的缩略名"): ?> 固定给某一个分类的模板

// 这里是分类A的样式

<?php elseif ($this->category == "分类B的缩略名"): ?> 固定给某一个分类的模板可添加N个,只需复制即可

// 这里是分类B的样式

<?php else: ?>

// 这里是分类C的样式 这里写的是通用模板样式

<?php endif?>

附:分类名称调用

<?php $this->category(',')?> //带连接的分类名称,逗号为多分类时的间隔符

<?php $this->category(',', false)?> //不带连

首页调用指定分类下子分类方法 模板首页一般都有分楼层显示的分类商品,每个楼层右上角会有该分类下小分类排列显示的: 以往有些模板这里都是静态显示的,需要客户手动依次修改,现在模板中心告诉您怎样修改成动态调用,只需修改一个id即可。

修改List文件的listCategories函数,把默认的修改成你想要的即可。

下面是listCategories函数:

/**

     * treeViewCategories  

     *

     * @param $categoryOptions 输出选项

     * @access public

     * @return void

     */

    public function listCategories($categoryOptions = NULL)

    {

        //初始化一些变量

        $this->_categoryOptions = Typecho_Config::factory($categoryOptions)

        $this->_categoryOptions->setDefault(array(

            'wrapTag'           =>  'ul',

            'wrapClass'         =>  '',

            'itemTag'           =>  'li',

            'itemClass'         =>  '',

            'showCount'         =>  false,

            'showFeed'          =>  false,

            'countTemplate'     =>  '(%d)',

            'feedTemplate'      =>  '<a href="%s">RSS</a>'

        ))

        // 插件插件接口

        $this->pluginHandle()->trigger($plugged)->listCategories($this->_categoryOptions, $this)

        if (!$plugged) {

            $this->stack = $this->getCategories($this->_top)

            if ($this->have()) { 

                echo '<' . $this->_categoryOptions->wrapTag . (empty($this->_categoryOptions->wrapClass)

                    ? '' : ' class="' . $this->_categoryOptions->wrapClass . '"') . '>'

                while ($this->next()) {

                    $this->treeViewCategoriesCallback()

                }

                echo '</' . $this->_categoryOptions->wrapTag . '>'

            }

            $this->stack = $this->_map

        }

    }

    

    其中的:

    $this->_categoryOptions->setDefault(array(

            'wrapTag'           =>  'ul',

            'wrapClass'         =>  '',

            'itemTag'           =>  'li',

            'itemClass'         =>  '',

            'showCount'         =>  false,

            'showFeed'          =>  false,

            'countTemplate'     =>  '(%d)',

            'feedTemplate'      =>  '<a href="%s">RSS</a>'

        ))

就是样式设置了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11560400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存