该自定义分类,因为WordPress的2.9功能已出台。它允许您为Post,Page和Custom Post Types创建自定义组。
假设您正在构建图书目录网站,并且您已创建用于发布图书的自定义帖子类型。通过使用自定义分类,您可以为其创建一个名为Genre的自定义分类。在此类型分类法中,您可以创建许多项目(在技术上称为术语),例如小说,儿童或传记,用于对书籍进行分组。
不幸的是,在这一点上,我们无法向用户注册自定义分类 ; 至少不是以直截了当的方式,因为我们会在其他邮政类型中注册它。我们可以从这个想法中预见到的一个完美的应用是,我们可以使用它来分配其他用户属性,例如他们的职业,职业或组织职位,而不是注册一组新的用户角色。它还可以根据分配的分类术语查询用户。
入门
首先,我们将安装一个名为User Taxonomies的插件来简化我们的工作。
一旦插件被激活。转到GenerateWP以生成分类代码。将代码输出放在主题的functions.php文件中。下面的代码片段就是一个例子。尽管如此,它已被剥离,使这篇文章看起来更短。您可以点击此链接查看完整代码。
1
2
3
4
五
6
|
if ( ! function_exists( 'user_staff_position' ) ) { function user_staff_position() { register_taxonomy( 'staff_position' , 'post' , $args ); } add_action( 'init' , 'user_staff_position' , 0 ); } |
现在,更改以下行中的Post Type参数:
1
|
register_taxonomy( 'staff_position' , 'post' , $args ); |
从… post
到user
,像这样:
1
|
register_taxonomy( 'staff_position' , 'user' , $args ); |
现在,转到WP-Admin,您会在“用户”菜单下找到一个新菜单,如下所示。
分配自定义分类
导航到新菜单并创建一些术语。在本例中,我们创建了两个项目:CEO和Managers。
然后转到用户编辑屏幕并将分类中的一个项目分配给用户。
查询用户
我们将根据给定的术语(分类法)显示主题中的用户。但在继续之前,让我们创建一个新的页面模板。我们将在此新模板中的以下部分添加代码。
在这种特殊情况下,我们将无法用get_users
或查询用户WP_User_Query
; 在创建新WP_User_Query
类时,它不会输出分配给用户的自定义分类。Justin Tadlock 在他的教程中向我们展示了如何使用该get_objects_in_term
函数。
此函数输出与术语绑定的对象ID(在我们的示例中,对象表示用户)。要使用它,我们需要两个参数:Term ID和Taxonomy名称。您可以在编辑时在浏览器URL栏中找到术语ID,如下所示。
一旦找到了ID,就把它放在函数中,就像这样。
1
|
$users = get_objects_in_term(3, 'user_position' ); |
您可以使用它var_dump()
来显示已检索的对象ID; 在我的例子中,它返回ID为1
和的用户3
。
使用这些ID,我们还可以检索用户名和头像。
1
2
3
4
五
6
7
8
9
10
|
<ul> <?php if ( ! empty ( $users ) ) : ?> <?php foreach ( $users as $id ) : ?> <li class = "user-entry" > <figure><?php echo get_avatar( get_the_author_meta( 'email' , $id ), '40' ); ?></figure> <h5 class = "user-title" ><a href= "<?php echo esc_url( get_author_posts_url( $id ) ); ?>" ><?php the_author_meta( 'display_name' , $id ); ?></a></h5> </li> <?php endforeach ; ?> <?php endif ; ?> </ul> |
……最后,这是结果。
而已。您可以自由修改上述代码以满足您的要求。