因此,我有一个自定义的post类型(people)和相关的自定义分类法(directory)。我想“编辑”一个目录组织并选择属于它的人,而不是编辑一个人然后选择相关的目录组织。有谁知道一个插件可以做到这一点?
我可以用一个接口来构建我自己的插件来实现这一点——在这里寻找意见。考虑做以下事情:
<?php
//Get all directory orgs
$orgs = get_terms("directory");
$count = count($orgs);
$orgtermids = array();
$peopleByOrg = array();
if ( $count > 0 ){
foreach ( $orgs as $org ) {
$orgtermids[] = $org->term_id; //Build array of term_ids
$peopleByOrg[$org->term_id] = array(); //Build an empty array() for each term_id
}
}
//Get all people currently associated with a directory org
$myquery[\'tax_query\'] = array(
array(
\'taxonomy\' => \'directory\',
\'terms\' => $orgtermids,
\'field\' => \'term_id\',
)
);
query_posts($myquery);
if (have_posts()) : while (have_posts()) : the_post();
$postOrgs = get_the_terms($post->ID, \'directory\'); //Get directory orgs for this person
if ( $postOrgs && ! is_wp_error( $postOrgs ) ) {
foreach ( $postOrgs as $postOrg ) {
$peopleByOrg[$postOrg->term_id][$post->ID] = $post; //Store person info with each org it belongs to
}
}
endwhile;
endif;
//Step through and create interface to choose additional people for each directory org
//code TBD
?>
有什么想法或意见吗?
刚刚想到了一个更好的方法,通过使用基于Walker\\u类别的新类扩展Walker类。我必须修改它以创建一个表单,在该表单中,可以将人员分配到目录组织,而不是显示为列表(目录组织是分层的)。