Setzen Sie den Taxonomie-Begriff dynamisch und zeigen Sie den Administrator-Hinweis für die Post-Speicherung an

Ich habe eine Taxonomie von “Datum”, die alle Monate des Jahres auflistet. Und ich habe ein benutzerdefiniertes Feld von “start_date”. Ich möchte die ‘Date’-Taxonomie dynamisch aktualisieren, so dass der Benutzer beim Einrichten eines Posts nicht auf beide klicken muss. Bisher haben meine Bemühungen keine Ergebnisse gezeigt. Was mache ich falsch?

/** * Check value of date, set date taxonomy on post save, then show admin notice * @param string $id post id * @return void */ function trip_location_post_published_notification( $ID, $post ) { // get acf value of start date $date = get_field( 'start_date', $ID ); // get the month off the beginning of the string (ex. 11/01/2017), 11 is month $moNum = explode('/',$date); $moNum = $moNum[0]; $moList = array("January","February","March","April","May","June","July","August","September","October","November","December"); $monthName = $moList[$moNum]; // set taxonomy to this post ID wp_set_object_terms($ID,$monthName,'date'); // setup notice message via WP_Error class? if ( $date ) { $notice = new WP_Error('date_notice','This trip location start date month is set to '.$monthName); } else { $notice = new WP_Error('date_notice','You did not set a trip start date.'); } add_filter('redirect_post_location', function( $location ) use ( $notice) { return add_query_arg( 'date_notice', $notice->get_error_code(), $location ); }); // now add an admin notice add_action( 'admin_notices', 'tax_date_set_notice' ); function tax_date_set_notice(){ if ( array_key_exists( 'date_notice', $_GET) ) { $notice = $_GET['date_notice']; ?>  <?php } } } add_action( 'save_post_trip-location', 'trip_location_post_published_notification', 12, 2 ); 

Solutions Collecting From Web of "Setzen Sie den Taxonomie-Begriff dynamisch und zeigen Sie den Administrator-Hinweis für die Post-Speicherung an"

Okay, nur für den Fall, dass jemand Hilfe zu dem gleichen Ding braucht, das ich getan habe … hier ist meine Lösung. Anstelle einer PHP / WordPress-Lösung habe ich Javascript verwendet. Ich liebe es, die PHP / WordPress-Lösung zu sehen, wenn jemand es veröffentlichen möchte.

 < ?php // Admin Custom JS add_action('admin_head', 'admin_custom_js'); function admin_custom_js() { ?>  < ?php }