Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Create a method of adding extra meta data to Taxonomy objects of the custom post type 'html_tag'
- * This adds the meta boxes to the WP Admin page
- */
- // Define meta boxes to be created
- $taxonomy_meta_boxes =
- array(
- "subtitle" => array(
- "name" => "subtitle",
- "type" => "input",
- "context" => "line",
- "std" => "",
- "title" => "Subtitle",
- "description" => "Enter a <em>Subtitle</em> for this post."
- ),
- "value" => array(
- "name" => "value",
- "type" => "input",
- "context" => "paragraph",
- "std" => "",
- "title" => "Values",
- "description" => "Add the values that this attribute accepts."
- ),
- "additional" => array(
- "name" => "additional_info",
- "type" => "input",
- "context" => "paragraph",
- "std" => "",
- "title" => "Additional Information",
- "description" => "Enter any additional information for this attribute."
- )
- );
- // Setup meta boxes
- function taxonomy_meta_boxes() {
- global $tag, $taxonomy_meta_boxes;
- echo'<h2>test</h2>';
- foreach($taxonomy_meta_boxes as $taxonomy_meta_box) {
- echo'<p>wtf</p>';
- $taxonomy_meta_box_value = get_metadata('decoded_taxonomy', $tag->term_id, 'new_metadata', TRUE);
- if($taxonomy_meta_box_value == "") {
- $taxonomy_meta_box_value = $taxonomy_meta_box['std'];
- }
- echo'<h3>test</h3>';
- echo'<p>wtf wtf</p>';
- echo'<tr class="form-field">';
- echo'<input type="hidden" name="'.$taxonomy_meta_box['name'].'_noncename" id="'.$taxonomy_meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
- echo'<th valign="top" scope="row">';
- echo'<label for="'.$taxonomy_meta_box['title'].'">'.$taxonomy_meta_box['title'].'</label></th>';
- if($taxonomy_meta_box['context'] == "line") {
- echo'<td><input id="'.$taxonomy_meta_box['name'].'" type="text" size="40" name="'.$taxonomy_meta_box['name'].'" value="'.$taxonomy_meta_box_value.'"/>';
- }
- elseif($taxonomy_meta_box['context'] == "paragraph") {
- echo'<textarea id="'.$taxonomy_meta_box['name'].'" style="width:97%;" cols="50" rows="5" name="'.$taxonomy_meta_box['name'].'">'.$taxonomy_meta_box_value.'</textarea>';
- }
- echo'<p class="description">'.$taxonomy_meta_box['description'].'</p></td>';
- }
- }
- // Add meta boxes
- function create_attr_meta_box() {
- if ( function_exists('add_meta_box') ) {
- add_meta_box( 'taxonomy-meta-boxes', 'Taxonomy Details', 'taxonomy_meta_boxes', 'html_tag', 'normal', 'high' );
- }
- }
- add_action('edit_tag_form_fields', 'create_attr_meta_box');
- // Save meta data when doing post save
- function save_html_postdata( $post_id ) {
- global $taxonomy_meta_boxes;
- foreach($taxonomy_meta_boxes as $taxonomy_meta_box) {
- if ( !wp_verify_nonce( $_POST[$taxonomy_meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
- return $post_id;
- }
- if ( 'page' == $_POST['post_type'] ) {
- if ( !current_user_can( 'edit_page', $post_id )) {
- return $post_id;
- }
- }
- else {
- if ( !current_user_can( 'edit_post', $post_id )) {
- return $post_id;
- }
- }
- $data = $_POST[$taxonomy_meta_box['name']];
- if(get_post_meta($post_id, $taxonomy_meta_box['name']) == "") {
- add_post_meta($post_id, $taxonomy_meta_box['name'], $data, true);
- }
- elseif($data != get_post_meta($post_id, $taxonomy_meta_box['name'], true)) {
- update_post_meta($post_id, $taxonomy_meta_box['name'], $data);
- }
- elseif($data == "") {
- delete_post_meta($post_id, $taxonomy_meta_box['name'], get_post_meta($post_id, $taxonomy_meta_box['name'], true));
- }
- }
- }
- add_action('save_post', 'save_html_postdata');
- // called in save_tag_data
- function get_term_taxonomy($term_id) {
- global $wpdb;
- $taxonomy = $wpdb->get_var($wpdb->prepare("SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = %d", $term_id));
- return $taxonomy;
- }
- // Save data when in edit_tag_form
- function save_tag_data($term_id) {
- if (isset($_POST[$taxonomy_meta_box['name']])) {
- // get term
- $taxonomy = get_term_taxonomy($term_id);
- $meta_key = $taxonomy . '_taxonomy';
- $tag_attribute = esc_attr($_POST[$taxonomy_meta_box['name']]);
- if ($tag_attribute)
- update_metadata('decoded_taxonomy', $term_id, $taxonomy_meta_key, $tag_attribute);
- else
- delete_metadata('decoded_taxonomy', $term_id, $taxonomy_meta_key);
- }
- }
- add_action('edited_tag', 'save_tag_data');
- // Register Decoded-Taxonomy Table
- function activate_taxonomy_meta() {
- require_once("taxonomy-meta.php");
- if (class_exists("Taxonomy_MetaData")) {
- $this->metadata = new Taxonomy_MetaData();
- }
- $this->metadata->metadata_install_type('decoded_taxonomy'); // this defines $type='decoded_taxonomy'
- }
- function register_custom_taxonomy_table() {
- global $wpdb;
- $wpdb->decoded_taxonomymeta = $wpdb->prefix . 'decoded_taxonomymeta';
- }
- add_action ('init', 'activate_taxonomy_meta');
- add_action ('init', 'register_custom_taxonomy_table');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement