我正在尝试导入几个用户,每个用户都应该与名为“firm”的分类法中的一个术语有关联,但我不知道如何建立连接。。。
Background:
仅供参考,我已经为使用插件的用户启用了WordPress分类法支持
LH User Taxonomies, 分类法“公司”已经注册。我正在使用插件导入
WPAllImport.
通过之前的WPAllImport进口创建了65个“公司”术语。术语段塞在入站公司名称字段上进行了文本处理$company
到strip spaces and convert to lowercase, 以创建一个干净的术语段塞。
所有这些都已设置好,问题不在于为用户启用分类支持。
The problem:
我现在正在导入许多用户,需要将他们连接到现有的“公司”术语(即他们工作的公司)。不幸的是,WPAllImport不支持为用户导入分类术语,但它支持在每次用户导入时执行的PHP函数,以及像pmxi\\u after\\u xml\\u import这样的操作,这些操作在导入后激发。
匹配的最佳方式似乎是通过slug,即匹配入站用户字段$company
, 剥离空间后,针对“固定”术语,使用匹配的唯一段塞。但是我如何做到这一点,然后我们如何在数据库中建立关联?
在每个单独的用户导入上,逻辑可能如下所示:
识别入站字符串$company
剥离空间并生成$company
使用my小写convert_company_name()
功能识别分类法中的“公司”逐步浏览“公司”分类法,找到一个术语,它的鼻涕虫与我们的加工产品相匹配$company
字符串(例如“widgetsinc”表示用户的已处理$company
, 匹配“widgetsinc”术语slug)将此用户与该slug关联,即设置术语任何适当的回退我不确定如何为此编写任何代码。
wp set object terms
看起来可能有关系?
Edit (2):
我想我在这里学到了很多。在某种程度上,这似乎是可行的。。。
// Relate user to "firm" taxonomy terms
function relate_user_to_firm($company, $username){
// convert company name to slug format
$company_slug = lowercase_and_strip($company);
// use slug to find corresponding taxonomy term
$term = get_term_by(\'slug\', $company_slug, \'firm\');
// get the object id of this term
$mytermid = $term->term_id;
// get user\'s ID
$user = get_user_by(\'login\', $username);
$user_id = $user->ID;
// *** relate user to this term ***
wp_set_object_terms( $user_id, $mytermid, \'firm\' );
}
问题是,虽然我的用户列表页面上的“公司”栏下显示了正确的术语,但公司列表页面上的实际术语中的用户计数没有更新,它仍然显示为0。那里发生了什么事?