WordPress在前端找不到用户分类

时间:2015-08-16 作者:Ole Henrik Skogstrøm

我正在开发一个使用用户分类法的新主题。用户可以通过用户管理屏幕选择分类法并正确保存。然而,Wordpress只能在前端找到一些用户的分类法。此外,未找到根据选定分类筛选用户的分类页面,因此使用默认存档模板。

Edit: 我已尝试更新我的永久链接

Have any one experienced this before?

下面是我用来注册其中一个分类法的代码:

register_taxonomy(\'Roles\', \'user\', array(
    \'public\'      =>true,
    \'labels\'      =>array(
        \'name\'                        =>\'Roles\',
        \'singular_name\'               =>\'Role\',
        \'menu_name\'                   =>\'Roles\',
        \'search_items\'                =>\'Search Roles\',
        \'popular_items\'               =>\'Popular Roles\',
        \'all_items\'                   =>\'All Roles\',
        \'edit_item\'                   =>\'Edit Role\',
        \'update_item\'                 =>\'Update Role\',
        \'add_new_item\'                =>\'Add New Role\',
        \'new_item_name\'               =>\'New Role Name\',
        \'separate_items_with_commas\'=>\'Separate roles with commas\',
        \'add_or_remove_items\'     =>\'Add or remove roles\',
        \'choose_from_most_used\'       =>\'Choose from the most popular roles\',
    ),
    \'rewrite\'     =>array(
        \'with_front\'              =>true,
        \'slug\'                        =>\'author/roles\',
    ),
    \'capabilities\'    => array(
        \'manage_terms\'                =>\'edit_users\',
        \'edit_terms\'              =>\'edit_users\',
        \'delete_terms\'                =>\'edit_users\',
        \'assign_terms\'                =>\'read\',
    ),
));
下面是我用来显示分类法的代码:

<?php the_terms( $user->ID, \'Roles\', \'<bold>Roller:</bold> \', \', \', \'<br>\' ); ?>

1 个回复
最合适的回答,由SO网友:webtoure 整理而成

我看到的第一个问题是您正在使用the_terms 作用如果您实际查看源代码,您将看到,在其他几个函数调用之后,整个过程都失败了,因为最终函数get_the_terms 调用,检查ID 你通过的是一个有效的职位。但有时,如果user_id 可能正好匹配post_id.

您可能有兴趣查看wp_get_object_terms 功能。

关于分类页面问题。您正在将分类注册为Roles 有资本R. 模板文件必须包含完全相同的名称:taxonomy-Roles.php. 此外,在分类页面上没有循环。您需要查询object_id, 这个object 然后获取具有以下关联的用户term_id 和相应的taxonomy. 你可以用get_objects_in_term.

Tom J Nowell pointed out (即使documentation 不包括role 保留期限)。如果您启用了用户注册,并且如果您有外来用户roles 作为用户名,您将在author 查询(author_name 查询变量)。因此,您可能需要筛选该用户名。

结束

相关推荐

如何写入wp-USERS表

我正在尝试修改一个登录插件,让新用户在注册时输入要在网站上显示的显示名称。我知道显示名称位于数据库的wp users表中,但无法对其进行写入。Edit<?php function wps_pro_login_registration_errors( $errors ) { if ( empty( $_POST[\'first_name\'] ) ) $errors->add( \'empty_first_name\', \'<st