wake-up-neo.com

Benutzerdefinierte Taxonomie als Dropdown-Liste anzeigen

Ich möchte die Liste der benutzerdefinierten Taxonomien als Dropdown-Liste anzeigen.

Ich habe hier die Lösung gefunden, @alexufos Antwort

Anzeigen einer benutzerdefinierten Taxonomie als Dropdown auf der Seite Beiträge bearbeiten

Das Problem dabei ist jedoch, dass beim Veröffentlichen des Posts mit ausgewählter Taxonomie automatisch eine andere Taxonomie erstellt wird.

Ich kann seine Antwort nicht kommentieren, da ich keinen guten Ruf habe.

hier ist mein Code

function realty_type() {
    $args = array(
        'show_ui'                    => true,
        'meta_box_cb'                => 'drop_cat',
    );
    register_taxonomy( 'realty_type', array( 'my-CPT' ), $args );

    }

    // Hook into the 'init' action
    add_action( 'init', 'realty_type', 0 );


    function drop_cat( $post, $box ) {
    $defaults = array('taxonomy' => 'category');
    if ( !isset($box['args']) || !is_array($box['args']) )
        $args = array();
    else
        $args = $box['args'];
    extract( wp_parse_args($args, $defaults), EXTR_SKIP );
    $tax = get_taxonomy($taxonomy);
    ?>
    <div id="taxonomy-<?php echo $taxonomy; ?>" class="acf-taxonomy-field categorydiv">

            <?php 
            $name = ( $taxonomy == 'category' ) ? 'post_category' : 'tax_input[' . $taxonomy . ']';
            echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
            ?>
            <? $term_obj = wp_get_object_terms($post->ID, $taxonomy ); //_log($term_obj[0]->term_id)?>
            <ul id="<?php echo $taxonomy; ?>checklist" data-wp-lists="list:<?php echo $taxonomy?>" class="categorychecklist form-no-clear">
                <?php //wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy) ) ?>
            </ul>

            <?php wp_dropdown_categories( array( 'taxonomy' => $taxonomy, 'hide_empty' => 0, 'name' => "{$name}[]", 'selected' => $term_obj[0]->term_id, 'orderby' => 'name', 'hierarchical' => 0, 'show_option_none' => '&mdash;' ) ); ?>

    </div>
    <?php
    }
1
Mais_Cule

Schließlich fand ich die Lösung nach einigen Versuchen und Irrtümern.

In den Argumenten für die Registrierung von Taxonomien musste ich nur 'hierarchical' => true einstellen, damit die Erhöhung der Taxonomie gestoppt und die Taxonomie automatisch hinzugefügt wird.

Ich bin mir nicht sicher, warum dies das Problem verursacht hat, nachdem ich die Dokumente durchgesehen habe. Wenn jemand den Grund kennt, erkläre es bitte.

function realty_type() {

    $args = array(
        'show_ui'                    => true,
        'meta_box_cb'                => 'drop_cat',
        'hierarchical' => true
    );

    register_taxonomy( 'realty_type', array( 'YOUR_POST_TYPE' ), $args );    
    }

    // Hook into the 'init' action
    add_action( 'init', 'realty_type', 0 );
0
Mais_Cule

Unten ist die einfachste Lösung, die ich verwende, um die benutzerdefinierte Taxonomie als Dropdown-Liste anstelle von Kontrollkästchen anzuzeigen.

1/Verwenden Sie das WordPress-Plugin 'ACF' eines Drittanbieters, um den Feldtyp 'Relational' für die Taxonomie zu erstellen und als Dropdown-Liste anzuzeigen (siehe Abbildung unten).

https://wordpress.org/plugins/advanced-custom-fields/

 enter image description here 

 enter image description here 

Zur Anzeige der ausgewählten Taxonomie können Sie die Dokumentation von ACF für den Feldtyp "Relationale Taxonomie" heranziehen.

https://www.advancedcustomfields.com/resources/taxonomy/

2/Verstecke das Taxonomie-Kontrollkästchen, indem du einfach 'meta_box_cb' als 'false' hinzufügst, wenn du deine benutzerdefinierte Taxonomie registrierst.

Hoffe das hilft..!!

0
dhirenpatel22