[php] Auto-save new tax - voxel

Viewer

copydownloadembedprintName: Auto-save new tax - voxel
  1. <?php
  2.  
  3. function sync_familie_with_taxonomy($post_id, $post, $update) {
  4.     sync_posts_with_taxonomy($post, 'familie', 'familiennamen');
  5. }
  6. add_action('save_post_familie', 'sync_familie_with_taxonomy', 10, 3);
  7.  
  8. function sync_lageplaene_with_taxonomy($post_id, $post, $update) {
  9.     sync_posts_with_taxonomy($post, 'lageplaene', 'abteilungen');
  10. }
  11. add_action('save_post_lageplaene', 'sync_lageplaene_with_taxonomy', 10, 3);
  12.  
  13. // Function to sync entries in post type gemeinden with custom taxonomy gemeinde
  14. function sync_gemeinden_with_taxonomy($post_id, $post, $update) {
  15.     sync_posts_with_taxonomy($post, 'gemeinden', 'gemeinde');
  16. }
  17. add_action('save_post_gemeinden', 'sync_gemeinden_with_taxonomy', 10, 3);
  18.  
  19. function sync_posts_with_taxonomy($post, $post_type, $taxonomy) {
  20.     // If this is an auto-save, our form has not been submitted, so we don't want to do anything.
  21.     if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
  22.         return;
  23.  
  24.     // Don't run on WP's post save, but only when the custom post type matches.
  25.     if ($post->post_type != $post_type)
  26.         return;
  27.  
  28.     // Get all posts from the post type.
  29.     $args = array(
  30.         'post_type' => $post_type,
  31.         'post_status' => 'publish',
  32.         'posts_per_page' => -1,
  33.         'fields' => 'ids'
  34.     );
  35.     $posts = get_posts($args);
  36.  
  37.     // For each post, check if its title exists as a term in the taxonomy.
  38.     foreach($posts as $post_id) {
  39.         $post_title = get_the_title($post_id);
  40.         $term = term_exists($post_title, $taxonomy);
  41.         if (!$term) {
  42.             wp_insert_term($post_title, $taxonomy);
  43.         }
  44.     }
  45.  
  46.     // Check for the "automatisch-gespeicherter-entwurf" term and delete it if it exists.
  47.     $draft_term = term_exists('automatisch-gespeicherter-entwurf', $taxonomy);
  48.     if ($draft_term) {
  49.         wp_delete_term($draft_term['term_id'], $taxonomy);
  50.     }
  51. }
  52.  
  53.  

Editor

You can edit this paste and save as new:


File Description
  • Auto-save new tax - voxel
  • Paste Code
  • 22 Apr-2024
  • 1.87 Kb
You can Share it: