• I’m trying to create hierarchical taxonomy terms on activation of a plugin. I’m just creating 1 parent and 1 child. The terms are being inserted into the database.

    My problem is updating the ‘cache’ blogoption that contains the hierachy (children), which gets updated by calling clean_term_cache().

    add_action( 'init', 'create_user_location_tax', 0 );
    function create_user_location_tax(){
      global $wpdb;
      register_taxonomy( 'location', 'users', array('hierarchical' => true,  'show_ui' => true, 'query_var' => true, 'label' => __('Where are you')) );
    
      $dummycountry = 'USA';
      $dummystate   = 'KENTUCKY';
      if( taxonomy_exists('location') ){
        $tax_location_terms = get_terms( 'location', 'get=all&hide_empty=false');
        if( count($tax_location_terms) < 1 ){
          $tax_country  = wp_insert_term($dummycountry,  'location');
          $parent       = $tax_country['term_id'];
          $tax_state    = wp_insert_term($dummystate, 'location', array('parent'=>$parent));
          $child        = $tax_state['term_id'];
          clean_term_cache(array($parent), 'location');
        }
      }
    
      $sql    = "SELECT option_value FROM $wpdb->options WHERE option_name = 'location_children'";
      $result = $wpdb->get_col($sql);
      error_log('term cache: '.$result[0]);
    }

    Where is the right place to call clean_term_cache()?
    How do I store and pass the right IDs to it?

  • The topic ‘Create Hiearchical Taxonomy Terms’ is closed to new replies.