COMBINING CUSTOMPOST TYPES, FIELDS,AND META BOXES TODO THE IMPOSSIBLEWITH WORDPRESS
function create_custom_post_type() {
register_post_type( 'sem_event', everything else );
}
array(
'labels' => array( 'name' => __( 'Events', 'SEM' ), ...),'rewrite' => array( 'slug' => 'event'),'has_archive' => 'events','supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields')
)
add_action( 'init', 'create_custom_post_type' );
function create_custom_taxonomy() {
register_taxonomy( 'special-event-category', everythingelse)
}
'hierarchical' => true
'hierarchical' => false
add_action( 'init', 'create_custom_taxonomy' );
add_action( 'init', 'create_custom_post_type' );
register_post_type(
'taxonomies' => array('special-event-category', 'special-event-tag')
)
function create_custom_meta_box() {
add_meta_box('special_event_meta', 'Event Date &Time', 'render_special_event_meta_box', 'sem_event','side', 'high');
}
function render_special_event_meta_box() {
require_once plugin_dir_path( __FILE__ ) .'partials/special-event-manager-admin-display.php';
}
<li> <label>Start Date</label> <input name="sem_events_startdate" id="startPicker" value="<?php echo $clean_sd; ?>"</li><li> <label>Start Time</label> <input name="sem_events_starttime" value="<?php echo $clean_st; ?>"</li>
Start Date Sat, Jul 4th, 2015
Start Time 2:00 pm
wp_create_nonceecho '<input type="hidden" name="SEM-events-nonce" id="SEM-events-nonce" wp_create_nonce( 'SEM-events-nonce' ) . '">';
$custom = get_post_custom($post->ID);
isset($custom["sem_events_startdate"][0]) ?
MON, JUN 29TH, 2015date("D, M d, Y", the date);
2:31 PMget_option('time_format');
date($time_format, the date);
function custom_meta_box_save() {
if ( !wp_verify_nonce( $_POST['SEM-events-nonce'], 'SEM-events-nonce' )) { return $post->ID; }if ( !current_user_can( 'edit_post', $post->ID )) return$post->ID;
}
function custom_meta_box_save() {
if(!isset($_POST["sem_events_startdate"])):return $post;endif;$updatestartdate = strtotime ($_POST["sem_events_startdate"] .$_POST["sem_events_starttime"] );update_post_meta($post->ID, "sem_events_startdate",$updatestartdate );
}
add_action( 'add_meta_boxes', 'create_custom_meta_box');
add_action( 'save_post', 'custom_meta_box_save' );
wp_enqueue_script( 'moment', plugin_dir_url( __FILE__ ) .'js/moment.js', array( ), 1.0, false );
wp_enqueue_script( 'pikaday', plugin_dir_url( __FILE__ ) .'js/pikaday.js', array( 'moment' ), 1.0, false );
wp_enqueue_script( special-event-manager, plugin_dir_url(__FILE__ ) . 'js/special-event-manager-admin.js', array('pikaday' ), 1.0, false );
wp_enqueue_style( special-events-manager, plugin_dir_url(__FILE__ ) . 'css/special-event-manager-admin.css', array(),1.0, 'all' );
wp_enqueue_style( 'pikadaycss', plugin_dir_url( __FILE__ ) .'css/pikaday.css', array(), 1.0, 'all' );
single-sem_event.php
single.php
index.php
$custom_fields = get_post_custom($post_id);
the date = $custom_fields["sem_events_startdate"][0];
the formatted date = date("D, M d, Y", the date);
if there's no end date or time, then { July 4th at 2pm} else if there is an end time, but start date = end date {
July 4th from 2pm - 3pm} else if start date != end date {
July 4th at 2pm to July 5th at 5pm }
$src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array( 250,255 ), false, '');
<img src="<?php $src[0] ?>">
<div style="background:url('<?php $src[0] ?>')"></div>
$today6am = strtotime('today 6:00') + ( get_option('gmt_offset' ) * 3600 );
if ( $post_event_time > $today6am ) {
if( function_exists( 'ninja_forms_display_form' ) ){ninja_forms_display_form( 6 ); }
}
archive-sem_event.php
archive.php
index.php
$query->set('orderby', 'meta_value_num');
$query->set('meta_key', 'sem_events_startdate');
$query->set('order', 'ASC');
#WCMTL / @allilevine
git.io/semplugin