
专题这个东西在好几年前就出现过,不知为何消失在历史中了。不过最近国内主题出现好几款带专题功能的,连水煮鱼都开始做专题插件了,说明这个东西还是挺有作用的。不过用别人的代码总是受制于人,我比较喜欢自己掌控,今天就讲一讲用代码实现 WordPress 的专题功能,一起来学习下吧!
从上图可以看出来,专题其实就跟分类功能一样,当然,这是我的理解,其实你用标签功能也是一样可以实现专题功能的,道路千万条,就看你选哪一条了。
本文所讲的专题实现办法是通过 WordPress 提供的函数,为 post 文章类型注册一个专题,WordPress 默认为 post 文章类型注册了分类。我们注册的专题就和默认的分类相似,看代码:
$labels = array(
'name' => '专题',
'singular_name' => 'special',
'search_items' => '搜索' ,
'popular_items' => '热门' ,
'all_items' => '所有' ,
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => '编辑' ,
'update_item' => '更新' ,
'add_new_item' => '添加' ,
'new_item_name' => '专题名称',
'separate_items_with_commas' => '按逗号分开' ,
'add_or_remove_items' => '添加或删除',
'choose_from_most_used' => '从经常使用的类型中选择',
'menu_name' => '专题',
);
register_taxonomy(
'special',
array('post'),
array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'special' ),
)
);
将上面的代码放在你的主题 functions.php 中,你会在 WordPress 后台看到上面图片上的专题功能。写文章时可以看到下图所示的新功能。

register_taxonomy 的使用这里不多讲,需要的自己去查手册。但是在使用时,大家要注意该方法的第一个参数必须是英文类型的,不能使用中文,这个参数是即将注册的分类名称,记住它,下面读取数据会用到它,WordPress 默认的分类名称是 category。
读取专题下的所有分类专题,实例代码:
$args=array(
'taxonomy' => '分类法名称',
'hide_empty'=>'0',
'hierarchical'=>1,
'parent'=>'0',
);
$categories=get_categories($args);
将返回的数组遍历,可以得到每个分类对象,通过
$categories[0]->term_id;
这样的方式来获得对应数据,当然你也可以使用其它方法来取得数据,这里我只是举个例子。
自定义分类法的分类模板
前面我们创建了一个名叫 special 的专题分类,我们只需要在主题目录下创建一个 taxonomy-special.php 模板文件,访问我们自定义的分类法下的分类时,WordPress 会自动使用这个模板来处理。也许你已经发现其中的奥秘,没错,taxonomy-分类法名称.php 就是这样的格式。在自定义分类法分类模板中输出当前所在分类信息,使用如下代码:
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
var_dump($term);//当前分类对象
echo '分类地址:'.get_term_link($term);
在文章页面获取当前文章所属自定义分类法中的分类信息,可以通过如下代码实现:
//获取文章ID
$post_ID = get_the_ID();
$terms = get_the_terms( $post_ID, 'special' );
var_dump($terms);
同样返回的是所属自定义分类法中的分类,可以是多个,决定于你写文章时在后台勾选的分类法数量,多个自己遍历就好。有了上面这些代码,相信诸位读者实现专题功能应该不难了!
芒果源码,一个精品商业网站源码分享平台 WWW.OKMG.CN
请务必线上支付,通过线下支付的出现任何问题平台均不担保! 1. 本站所有资源来源于用户上传和网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员恶意下载,传播,或用于违法用途,本站有权封禁账号,并积极配合有关部门调查
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源(除商业源码分类),都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价和会员费只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.okmg.cn",如遇到无法解压的请联系管理员!
9.本站客服QQ:29139260
10.如您发现本站分享的源码,侵犯了您的权益,请联系:29139260#qq.com #换成@
请务必线上支付,通过线下支付的出现任何问题平台均不担保!