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' => '—' ) ); ?>
</div>
<?php
}
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 );
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/
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..!!