是否将帖子分配给分类术语,而不是将分类术语分配给帖子?

时间:2012-02-01 作者:Brad Trivers

因此,我有一个自定义的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类。我必须修改它以创建一个表单,在该表单中,可以将人员分配到目录组织,而不是显示为列表(目录组织是分层的)。

2 个回复
SO网友:mltsy

我认为“特色贴子管理器”插件将更接近您想要的:

http://wordpress.org/extend/plugins/featured-post-manager/screenshots/

所使用的语言有些混乱,它可能不适用于自定义分类法(目录)或自定义类型(人),但您可能可以使用代码并对其进行自定义,以适用于这些类的内容,以及更新页面上使用的语言。

它主要是一个PHP文件,因此您只需查看代码(http://plugins.trac.wordpress.org/browser/featured-post-manager/trunk/fpmngr.php ) 并将一些内容从“类别”更改为“目录”(第81行),将“帖子”更改为“人/人”(第108行),等等。

SO网友:Philip Downer

我希望我在这里正确理解了你的问题。但据我所知,您希望在分类法编辑屏幕上选择任意数量的自定义帖子类型。

您可能想看看Advanced Custom Fields plugin 作者:Elliot Condon。该插件具有一个“关系”字段类型,这可能正是您想要的。“关系”字段允许您选择与术语关联的任意数量的帖子。如果愿意,可以将单个字段或一组自定义字段应用于特定的分类法(而不是编辑后的页面)。

结束
是否将帖子分配给分类术语,而不是将分类术语分配给帖子? - 小码农CODE - 行之有效找到问题解决它

是否将帖子分配给分类术语,而不是将分类术语分配给帖子?

时间:2012-02-01 作者:Brad Trivers

因此,我有一个自定义的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类。我必须修改它以创建一个表单,在该表单中,可以将人员分配到目录组织,而不是显示为列表(目录组织是分层的)。

2 个回复
SO网友:mltsy

我认为“特色贴子管理器”插件将更接近您想要的:

http://wordpress.org/extend/plugins/featured-post-manager/screenshots/

所使用的语言有些混乱,它可能不适用于自定义分类法(目录)或自定义类型(人),但您可能可以使用代码并对其进行自定义,以适用于这些类的内容,以及更新页面上使用的语言。

它主要是一个PHP文件,因此您只需查看代码(http://plugins.trac.wordpress.org/browser/featured-post-manager/trunk/fpmngr.php ) 并将一些内容从“类别”更改为“目录”(第81行),将“帖子”更改为“人/人”(第108行),等等。

SO网友:Philip Downer

我希望我在这里正确理解了你的问题。但据我所知,您希望在分类法编辑屏幕上选择任意数量的自定义帖子类型。

您可能想看看Advanced Custom Fields plugin 作者:Elliot Condon。该插件具有一个“关系”字段类型,这可能正是您想要的。“关系”字段允许您选择与术语关联的任意数量的帖子。如果愿意,可以将单个字段或一组自定义字段应用于特定的分类法(而不是编辑后的页面)。