it-swarm.com.de

Wie erstelle ich benutzerdefinierte Taxonomie-Kontrollkästchen wie "Kategorien"?

Im Moment habe ich eine benutzerdefinierte Taxonomie für meinen benutzerdefinierten Beitragstyp case_study. Alles funktioniert, bis auf die Tatsache, dass es sich beim Erstellen eines neuen Posts und Hinzufügen einer Taxonomie um "Tags" handelt und ich wollte tun, was Posts mit ihrer Kategorie tun (das Kontrollkästchen). Kann ich das trotzdem tun, anstatt diese "Tags" hinzuzufügen?

Hier ist mein Code zum Registrieren dieser Taxonomie

PhP

add_action( 'init', 'create_case_study_tax' );

$tax_args = array(
  'hierarchical'      => false,
  'show_ui'           => true,
  'label'             => __('Industry'),
  'show_admin_column' => true,
  'query_var'         => true,
);

function create_case_study_tax() {
  register_taxonomy('industry', 'case_study', $tax_args);
} 
1
Taylor Foster

Setzen Sie einfach 'hierarchical' => true in den Argumenten auf register_taxonomy() (auch wenn Sie niemals vorhaben, Begriffe mit Eltern-Kind-Beziehungen hinzuzufügen), und Sie erhalten die gleiche Benutzeroberfläche zum Zuweisen von Begriffen aus dieser benutzerdefinierten Taxonomie, wenn Sie diesen benutzerdefinierten Beitragstyp erstellen/bearbeiten, wie Sie dies mit der tun würden eingebaute Kategorie Taxonomie.

Und wenn Sie eine Dropdown-Liste von Begriffen auf dem Bildschirm edit.php wünschen (wie WP Core automatisch für 'Kategorie' hinzufügt), fügen Sie Folgendes hinzu:

add_action ('restrict_manage_posts', 'add_custom_taxonomy_dropdowns', 10, 2) ;

/**
 * add a dropdown/filter to the edit.php screen for our custom taxonomies
 *
 * @param $post_type string - the post type that is currently being displayed on edit.php screen
 * @param $which string - one of 'top' or 'bottom'
 */
function
add_custom_taxonomy_dropdowns ($post_type, $which = 'top')
{
    if ('case_study' != $post_type) {
        return ;
        }

    $taxonomies = get_object_taxonomies ($post_type, 'object') ;
    foreach ($taxonomies as $tax_obj) {
        if ($tax_obj->_builtin) {
            // let WP handle the builtin taxonomies
            continue ;
            }

        $args = array (
            'show_option_all' => $tax_obj->labels->all_items,
            'taxonomy'    => $tax_obj->name,
            'name'        => $tax_obj->name,
            'value_field' => 'slug',
            'orderby'     => 'name',
            'selected'    => isset ($_REQUEST[$tax_obj->name]) ? $_REQUEST[$tax_obj->name] : '0',
            'hierarchical'    => $tax_obj->hierarchical,
            'show_count'      => true,
            'hide_empty'      => true,
            'fields' => 'all',
            ) ;

        wp_dropdown_categories ($args) ;
        }

    return ;
}