在WordPress自定义分类中创建术语

时间:2015-12-17 21:47:15

标签: wordpress

我创建了一个自定义帖子类型属性,在其中我创建了一个名为Position的自定义分类法,在其中我想创建一些术语我使用下面的代码创建了术语Slider,并且工作正常。

function realestatepro_custom_terms() {

    wp_insert_term(
      'Slider', // the term 
      'Position', // the taxonomy
          array(
            'description'=> 'Will be featured in the home page slider.',
            'slug' => 'home-page-slider'
          )
    );


}

add_action( 'init', 'realestatepro_custom_terms' );

但是我想创建更多的术语,比如精选和推广,但我不确定如何,我确实考虑重复整个wp_insert_terms块,但这看起来不对,然后我试着添加另一个术语直接在第一个之后,但那是行不通的。

任何人都知道添加多个字词的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

wp_insert_term()是一个很大的功能,有很多清理,操作和错误检查。没有重复版本的版本。因此,您必须将wp_insert_term()包装到foreach循环中。

function realestatepro_custom_terms() {

    $terms = array(
      'Slider' => array(
        'description'=> 'Will be featured in the home page slider.',
        'slug' => 'home-page-slider'
      ),
      'Featured' => array( /*properties*/ 
      ),
      'Promoted' => array( /*properties*/ 
      )
    );
    foreach($terms as $term => $meta){
        wp_insert_term(
          $term, // the term 
          'Position', // the taxonomy
          $meta
        );
    }
}
add_action( 'init', 'realestatepro_custom_terms' );

另一种可能性是你可以像这样使用wp_set_object_terms()

$terms = array( 'Featured', 'Promoted', 'Slider');
wp_set_object_terms( $object_id, $terms, 'Position' );

其中$ object_id是您创建的虚拟属性帖子。添加条款后,您可以删除帖子。这里的问题是你不能像slug或描述那样设置任何术语元。此外,wp_set_object_terms()函数只包含一个foreach循环,wp_insert_term()重复,类似于第一个解决方案。它没什么太壮观的。我并不是真的推荐第二种选择,只是提一下兴趣。