Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.05 KB | None | 0 0
  1. /**
  2.  * Create a method of adding extra meta data to Taxonomy objects of the custom post type 'html_tag'
  3.  * This adds the meta boxes to the WP Admin page
  4.  */
  5.  
  6. // Define meta boxes to be created
  7. $taxonomy_meta_boxes =  
  8.   array(
  9.     "subtitle" => array(  
  10.       "name" => "subtitle",
  11.       "type" => "input",
  12.       "context" => "line",
  13.       "std" => "",  
  14.       "title" => "Subtitle",  
  15.       "description" => "Enter a <em>Subtitle</em> for this post."
  16.     ),
  17.     "value" => array(  
  18.       "name" => "value",
  19.       "type" => "input",
  20.       "context" => "paragraph",
  21.       "std" => "",  
  22.       "title" => "Values",  
  23.       "description" => "Add the values that this attribute accepts."
  24.     ),
  25.     "additional" => array(  
  26.       "name" => "additional_info",
  27.       "type" => "input",
  28.       "context" => "paragraph",
  29.       "std" => "",  
  30.       "title" => "Additional Information",  
  31.       "description" => "Enter any additional information for this attribute."
  32.     )
  33.   );
  34.  
  35. // Setup meta boxes
  36. function taxonomy_meta_boxes() {  
  37.   global $tag, $taxonomy_meta_boxes;
  38.   echo'<h2>test</h2>';
  39.   foreach($taxonomy_meta_boxes as $taxonomy_meta_box) {
  40.   echo'<p>wtf</p>';
  41.     $taxonomy_meta_box_value = get_metadata('decoded_taxonomy', $tag->term_id, 'new_metadata', TRUE);
  42.     if($taxonomy_meta_box_value == "") {
  43.       $taxonomy_meta_box_value = $taxonomy_meta_box['std'];
  44.     }
  45.     echo'<h3>test</h3>';
  46.     echo'<p>wtf wtf</p>';
  47.     echo'<tr class="form-field">';
  48.     echo'<input type="hidden" name="'.$taxonomy_meta_box['name'].'_noncename" id="'.$taxonomy_meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
  49.     echo'<th valign="top" scope="row">';
  50.     echo'<label for="'.$taxonomy_meta_box['title'].'">'.$taxonomy_meta_box['title'].'</label></th>';
  51.     if($taxonomy_meta_box['context'] == "line") {
  52.       echo'<td><input id="'.$taxonomy_meta_box['name'].'" type="text" size="40" name="'.$taxonomy_meta_box['name'].'" value="'.$taxonomy_meta_box_value.'"/>';
  53.     }
  54.     elseif($taxonomy_meta_box['context'] == "paragraph") {
  55.       echo'<textarea id="'.$taxonomy_meta_box['name'].'" style="width:97%;" cols="50" rows="5" name="'.$taxonomy_meta_box['name'].'">'.$taxonomy_meta_box_value.'</textarea>';
  56.     }
  57.     echo'<p class="description">'.$taxonomy_meta_box['description'].'</p></td>';
  58.   }
  59. }
  60.  
  61. // Add meta boxes
  62. function create_attr_meta_box() {  
  63.   if ( function_exists('add_meta_box') ) {  
  64.     add_meta_box( 'taxonomy-meta-boxes', 'Taxonomy Details', 'taxonomy_meta_boxes', 'html_tag', 'normal', 'high' );  
  65.   }
  66. }
  67.  
  68. add_action('edit_tag_form_fields', 'create_attr_meta_box');
  69.  
  70. // Save meta data when doing post save
  71. function save_html_postdata( $post_id ) {  
  72.   global $taxonomy_meta_boxes;  
  73.   foreach($taxonomy_meta_boxes as $taxonomy_meta_box) {  
  74.     if ( !wp_verify_nonce( $_POST[$taxonomy_meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {  
  75.      return $post_id;  
  76.     }
  77.     if ( 'page' == $_POST['post_type'] ) {  
  78.       if ( !current_user_can( 'edit_page', $post_id )) {
  79.         return $post_id;
  80.       }
  81.     }
  82.     else {
  83.       if ( !current_user_can( 'edit_post', $post_id )) {
  84.         return $post_id;
  85.       }
  86.     }
  87.     $data = $_POST[$taxonomy_meta_box['name']];
  88.     if(get_post_meta($post_id, $taxonomy_meta_box['name']) == "") {
  89.       add_post_meta($post_id, $taxonomy_meta_box['name'], $data, true);
  90.     }
  91.     elseif($data != get_post_meta($post_id, $taxonomy_meta_box['name'], true)) {
  92.       update_post_meta($post_id, $taxonomy_meta_box['name'], $data);
  93.     }
  94.     elseif($data == "") {
  95.       delete_post_meta($post_id, $taxonomy_meta_box['name'], get_post_meta($post_id, $taxonomy_meta_box['name'], true));
  96.     }
  97.   }
  98. }
  99. add_action('save_post', 'save_html_postdata');
  100.  
  101. // called in save_tag_data
  102. function get_term_taxonomy($term_id) {
  103.   global $wpdb;
  104.   $taxonomy = $wpdb->get_var($wpdb->prepare("SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %d", $term_id));
  105.   return $taxonomy;
  106. }
  107.  
  108. // Save data when in edit_tag_form
  109. function save_tag_data($term_id) {
  110.   if (isset($_POST[$taxonomy_meta_box['name']])) {
  111.     // get term
  112.     $taxonomy = get_term_taxonomy($term_id);
  113.     $meta_key = $taxonomy . '_taxonomy';   
  114.     $tag_attribute = esc_attr($_POST[$taxonomy_meta_box['name']]);
  115.     if ($tag_attribute)
  116.       update_metadata('decoded_taxonomy', $term_id, $taxonomy_meta_key, $tag_attribute);
  117.     else
  118.       delete_metadata('decoded_taxonomy', $term_id, $taxonomy_meta_key);
  119.   }
  120. }
  121. add_action('edited_tag', 'save_tag_data');
  122.  
  123. // Register Decoded-Taxonomy Table
  124. function activate_taxonomy_meta() {
  125.   require_once("taxonomy-meta.php");
  126.   if (class_exists("Taxonomy_MetaData")) {
  127.     $this->metadata = new Taxonomy_MetaData();
  128.   }
  129.   $this->metadata->metadata_install_type('decoded_taxonomy');  // this defines $type='decoded_taxonomy'
  130. }
  131.  
  132. function register_custom_taxonomy_table() {
  133.   global $wpdb;
  134.   $wpdb->decoded_taxonomymeta = $wpdb->prefix . 'decoded_taxonomymeta';
  135. }
  136.  
  137. add_action ('init', 'activate_taxonomy_meta');
  138. add_action ('init', 'register_custom_taxonomy_table');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement