Skip to content

Instantly share code, notes, and snippets.

@KINKCreative
Created September 29, 2015 02:25
Show Gist options
  • Save KINKCreative/a10d65d7f10c3245e387 to your computer and use it in GitHub Desktop.
Save KINKCreative/a10d65d7f10c3245e387 to your computer and use it in GitHub Desktop.
dc_events.php
<?php
/**
* PRODUCT EVENTS
**/
// Register Custom Post Type
function dc_events_register_events() {
$labels = array(
'name' => _x( 'Events', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Event', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Events', 'text_domain' ),
'parent_item_colon' => __( 'Parent:', 'text_domain' ),
'all_items' => __( 'All Events', 'text_domain' ),
'view_item' => __( 'View', 'text_domain' ),
'add_new_item' => __( 'New Event', 'text_domain' ),
'add_new' => __( 'Add New', 'text_domain' ),
'edit_item' => __( 'Edit', 'text_domain' ),
'update_item' => __( 'Update', 'text_domain' ),
'search_items' => __( 'Search', 'text_domain' ),
'not_found' => __( 'Not found', 'text_domain' ),
'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ),
);
$rewrite = array(
'slug' => 'events',
'with_front' => true,
'pages' => true,
'feeds' => true,
);
$args = array(
'label' => __( 'event', 'text_domain' ),
'description' => __( 'Event', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', /* 'page-attributes', 'excerpt', */ 'thumbnail', 'revisions' /*, 'custom-fields' */ ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => false,
'show_in_admin_bar' => false,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => true,
'publicly_queryable' => true,
'query_var' => false,
'rewrite' => $rewrite,
'capability_type' => 'post',
);
register_post_type( 'dc_event', $args );
}
// Hook into the 'init' action
add_action( 'init', 'dc_events_register_events', 0 );
/* ADD META BOXES FOR EVENTS */
function dc_add_events() {
add_meta_box("dc_event_meta", "Event Options", "dc_events_meta",
"dc_event", "normal", "high");
}
add_action( 'add_meta_boxes', 'dc_add_events' );
function dc_events_meta() { //Callback for above
global $post;
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
$meta = get_post_meta($post->ID);
$output = '<table class="form-table">';
wp_nonce_field( 'dc_events_meta_box', 'dc_events_meta_box_nonce' );
/* FIELDS */
$event_date_text = $meta['dc_event_date_text'][0];
$output .= '<tr><td class="events_box_td" colspan="2">'
. '<label for="dc_event_date_text">' . __( 'Event date (e.g. April 15-18 2014)', 'dc_event_text' ).'</label> '
. '</td><td colspan="4">'
.' <input type="text" id="dc_event_date_text" name="dc_event_date_text" value="' . esc_attr( $event_date_text ) . '" size="50" />'
. '</td></tr>';
$output .= '</table>';
/* EVENT DATE */
$event_date = $meta['dc_event_date'][0];
$output .= '<tr><td class="events_box_td" colspan="2">'
. '<label for="dc_event_date">' . __( 'Event date (for sorting)', 'dc_event_text' ).'</label> '
. '</td><td colspan="4">'
.' <input type="text" id="dc_event_date" name="dc_event_date" value="' . esc_attr( $event_date ) . '" size="10" />'
. '</td></tr>';
$output .= '</table>';
$output .= "<script>jQuery(document).ready(function() {".
"jQuery('#dc_event_date').datepicker({".
"dateFormat : 'yymmdd'".
"});".
"});</script>";
echo($output);
}
function dc_events_save_meta_box_data( $post_id ) {
if(empty($post_id) || $_POST['post_type'] != 'dc_event' ) return false;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id;
if ( !current_user_can( 'edit_post', $post_id ) ) return $post_id;
if ( ! isset( $_POST['dc_events_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['dc_events_meta_box_nonce'], 'dc_events_meta_box' ) ) {
return;
}
if($_POST['action'] == 'editpost'){
delete_post_meta($post_id, 'dc_event_date');
delete_post_meta($post_id, 'dc_event_date_text');
}
update_post_meta($post_id, 'dc_event_date', $_POST['dc_event_date']);
update_post_meta($post_id, 'dc_event_date_text', $_POST['dc_event_date_text']);
}
add_action('save_post', 'dc_events_save_meta_box_data');
function dc_events_archive_order( $query ) {
$yesterday = date("Ymd", current_time('timestamp') - 24*60*60);
if ( $query->is_main_query() && is_post_type_archive('dc_event') && $query->query_vars["post_type"]==="dc_event") {
$query->set( 'orderby', 'meta_value' );
$query->set( 'order', 'ASC' );
$query->set( 'post_status', 'publish' );
$query->set( 'meta_key', 'dc_event_date' );
$query->set( 'meta_value', $yesterday );
$query->set( 'meta_compare', '>=' );
}
}
add_filter( 'pre_get_posts', 'dc_events_archive_order');
// /* SUPPORT PAGES LOOP */
// add_shortcode( 'dc_support_pages_loop', 'dc_support_pages_loop_handler' );
// function dc_support_pages_loop_handler( $atts ) {
// $output = '<div class="et_pb_row_inner">';
// $args = array(
// 'post_type' => 'support_page'
// );
// $loop = new WP_Query( $args );
// if ( $loop->have_posts() ) {
// while ( $loop->have_posts() ) : $loop->the_post();
// $thumb = '';
// $width = (int) apply_filters( 'et_pb_index_blog_image_width', 400 );
// $height = (int) apply_filters( 'et_pb_index_blog_image_height', 400 );
// $classtext = 'et-waypoint et_pb_animation_right et-animated';
// $titletext = get_the_title();
// $thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'SupportImage_Preview' );
// $thumb = $thumbnail["thumb"];
// $post_format = get_post_format();
// if ( ! in_array( $post_format, array( 'gallery', 'link', 'quote' ) ) && 'on' === et_get_option( 'divi_thumbnails', 'on' ) && '' !== $thumb ) {
// $output .= '<div class="et_pb_column et_pb_column_1_3 et_pb_column_inner support_item">'
// .'<a href="'.get_permalink().'" class="" title="">'
// . '<div class="et_pb_text et_pb_bg_layout_light et_pb_text_align_center">'
// . print_thumbnail( $thumb, $thumbnail["use_timthumb"], $titletext, $width, $height, $classtext, false )
// .'<h3 class="et-waypoint et_pb_image et_pb_animation_right et-animated">'
// .get_the_title()
// .'<small class="green">View support</small>'
// .'</h3>'
// .'</div>'
// .'</a>'
// .'</div>';
// }
// endwhile;
// $output.= "</div>";
// } else {
// $output = "";
// }
// return $output;
// }
// } else {
// $output = "";
// }
// return $output;
// }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment