Das register_taxonomy
accept-Array als Objekttyp, damit ich so viele benutzerdefinierte Beitragstypen mit einer benutzerdefinierten Taxonomie verknüpfen kann. Das ist gut.
Das Problem ist, dass die Standard-Taxonomie-Anzahl mit den Standardeinstellungen immer Null ist. Was sollte ich also für das Argument update_count_callback
einstellen?
Ich habe darüber nachgedacht, da die Taxonomie mit mehreren Beitragstypen verknüpft ist, sodass die Anzahl bei der Anzeige eines bestimmten Beitragstyps von Bedeutung ist.
Was ist die beste Methode, um die Anzahl benutzerdefinierter Taxonomien zu verarbeiten, wenn diese Taxonomie mit mehreren benutzerdefinierten Beitragstypen verknüpft ist?
Ich habe von Zeit zu Zeit mit ähnlichen Dingen zu tun. Was ich beim Verwenden benutzerdefinierter Beitragstypen und Taxonomien getan habe, ist Folgendes:
Das hat fast immer seltsame Probleme beseitigt, auf die ich mit benutzerdefinierten Objekten und der Dokumentation zu register_ * -Funktionen in WordPress-Notizen gestoßen bin. Sie sollten sie auf jeden Fall während der Initialisierung registrieren.
Wenn Sie sie nicht manuell verknüpfen, kann es sein, dass Sie zwischen ihnen hin und her sprechen oder nicht ... und der update_callback_count ist Teil dieses Hin und Her-Sprechens, sodass ich alle Objekte während der Initialisierung vor 10 registriere und sie dann alle verknüpfe nach (oder am) 10.
add_action('init', do_create_taxonomies, 7);
function do_create_taxonomies() {
# setup taxonomies as array of key => options arrays
foreach ( $taxonomies as $slug => $options ) {
register_taxonomy("{$slug}", null, "{$options}");
}
}
add_action('init', do_create_post_types, 8);
function do_create_post_types() {
# setup post types as array of key => options arrays
foreach ( $post_types as $slug => $options ) {
register_post_type("{$slug}", "{$options}");
}
}
add_action('init', do_bind_post_types_to_taxonomies, 11);
function do_bind_post_types_to_taxonomies() {
# setup relationships as Tax_slug => array( post_type_slugs )
foreach ( $relationships as $tax_slug => $post_types ) {
if ( is_array($post_types) ) {
foreach ( $post_types as $post_type_slug ) {
register_taxonomy_for_object_type( "{$tax_slug}", "{$post_type_slug}" );
}
} else {
register_taxonomy_for_object_type("{$tax_slug}", "{$post_types}");
}
}
}
Das hat alle Arten von seltsamen Problemen im Zusammenhang mit benutzerdefinierten Beitragstypen und Taxonomien für mich gelöst. Wenn dies nicht ausreicht, lohnt es sich möglicherweise, in der Quelle nachzuschlagen, um zu sehen, wie _update_post_term_count genau funktioniert. Sehen Sie sich Ihre Beziehungen an, um herauszufinden, ob es stattdessen _update_generic_term_count erzwingt.