wake-up-neo.net

Hinzufügen der Kategorie Taxonomy Support zu Custom Post Type

Ich schreibe einen Code, der in großem Umfang benutzerdefinierte Beitragstypen verwendet. Außerdem suche ich nach einer Möglichkeit, programmgesteuert eine Kategorie zu einem definierten benutzerdefinierten Beitragstyp hinzuzufügen und dann auf die Kategorie-ID zuzugreifen.

Ich habe mich umgesehen, aber ich kann anscheinend kein zuverlässiges Mittel finden, um dies zu erreichen - wp_create_category wäre die naheliegende Wahl, aber dies unterstützt natürlich keine benutzerdefinierten Beitragstypen.

3
George Pearce

wenn Sie einige Begriffe vorab erstellen müssen, können Sie der init-Funktion, die die Taxonomie registriert, Folgendes hinzufügen. es wird der Begriff foo in der Aufnahmetaxonomie erstellt

if (!term_exists( 'foo', 'recordings') ){
        wp_insert_term( 'foo', 'recordings' );
    })
2
helgatheviking

In Ihrem register_post_type können Sie den Parameter taxonomies hinzufügen.

register_post_type('discography',
    array(
    'labels' => array(
             //your label stuff
             ),

  'taxonomies' => array('recordings', 'category', 'whatever'),  //add this....

  'public' => true,
  'show_ui' => true,
  'exclude_from_search' => true,
  'hierarchical' => true,
  'supports' => array( 'title', 'editor', 'thumbnail' ),
  'query_var' => true
        )
  );

Alternativ können Sie register_taxonomy_for_object_type, http://codex.wordpress.org/Function_Reference/register_taxonomy_for_object_type verwenden.

5
Wyck

Bitte setzen Sie diesen Code in theme functions.php

function post_type_discog() {

register_post_type('discography',
    array(
    'labels' => array(
            'name' => __( 'Discography' ),
            'singular_name' => __( 'Discography' ),
            'add_new' => __( 'Add New' ),
            'add_new_item' => __( 'Add New Discography' ),
            'edit' => __( 'Edit' ),
            'edit_item' => __( 'Edit Discography' ),
            'new_item' => __( 'New Discography' ),
            'view' => __( 'View Discography' ),
            'view_item' => __( 'View Discography' ),
            'search_items' => __( 'Search Discographys' ),
            'not_found' => __( 'No Discographys found' ),
            'not_found_in_trash' => __( 'No Discographys found in Trash' ),
            'parent' => __( 'Parent Discography' ),
        ),
  'public' => true,
  'show_ui' => true,
        'exclude_from_search' => true,
        'hierarchical' => true,
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'query_var' => true
        )
  );
}
add_action('init', 'post_type_discog');

add_action( 'init', 'create_discog_taxonomies', 0 );

function create_discog_taxonomies()
{
  // Add new taxonomy, make it hierarchical (like categories)
  $labels = array(
    'name' => _x( 'Recordings', 'taxonomy general name' ),
    'singular_name' => _x( 'Recording', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Recordings' ),
    'popular_items' => __( 'Popular Recordings' ),
    'all_items' => __( 'All Recordings' ),
    'parent_item' => __( 'Parent Recording' ),
    'parent_item_colon' => __( 'Parent Recording:' ),
    'edit_item' => __( 'Edit Recording' ),
    'update_item' => __( 'Update Recording' ),
    'add_new_item' => __( 'Add New Recording' ),
    'new_item_name' => __( 'New Recording Name' ),
  );
  register_taxonomy('recordings',array('discography'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'recordings' ),
  ));
}

In diesem Code können Sie einen benutzerdefinierten Beitragstyp und einen benutzerdefinierten Kategorietyp erstellen. Möge dieser Code hilfreich für Sie sein.

2
Arvind Pal