Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Notes regarding the WP event manager
Perfect solution for a simple WP event manager
- we want the event dates to be linked to a normal WP post (or custom post type), so
that we have access to all other features, without any further work (be able to
attach images and documents, be able to use categories, taxonomies, custom fields,
featured images...).
- we want the plugin to be localizable in multiple languages.
- we should be able to restrict this function to a specific Custom Post Type, if we
want to. It's not necessary to have an admin interface for this, it's OK to paste
some code in our functions.php file.
Our idea for the implementation:
- We will simply use custom fields, in order to save date and time in such a format:
2012-10-29 13:00. This will allow us to run specific queries and display the date
how we want, using strtotime() and date_i18n().
- The design of the date-picker should be similar to the one that WP uses for the
publishing date. This keeps the interface clean and easy to understand.
- We must have the option to show the time (or not), to show the end date (or not).
## RELATED: ##
If you set the meta_value as a timestamp, you can order by the show time date still,
or select before / after a certain date:
$args = array(
'post_type' => 'events',
'meta_key' => '_show_time',
'meta_value' => strtotime( '+1 week' ),
'meta_compare' => '<',
'orderby' => 'meta_value' );
$events = get_posts( $args );
This would get all "events" with a showtime no later then a week from the current date.
Note: The above is untested, but should work :)
### About meta_compare ###
Some good information about the meta_compare query:
query_posts( array(
'post_type' => 'beer', // Show posts from the beer post type
'paged' => $paged,
'meta_query' => array(
'meta_key' => '_abv',
'meta_compare' => 'BeTwEeN',
'meta_value' => array(6,8)
'meta_key' => '_ibu',
'meta_compare' => '>',
'meta_value' => 50
) );
Another example, by Scribu:
Get all the products with a price greater than 100:
query_posts( array(
'post_type' => 'product',
'meta_key' => 'price',
'meta_value' => 100,
'meta_compare' => '>'
) );
// Get all the products with a price between 100 and 200 and a description that
// doesn’t contain the string ’round’:
query_posts( array(
'post_type' => 'product',
'meta_query' => array(
'key' => 'price',
'value' => array( 100, 200 ),
'compare' => 'BETWEEN',
'type' => 'numeric',
'key' => 'description',
'value' => 'round',
'compare' => 'NOT LIKE'
) );
## Some examples of strtotime() and date() ##
06-10-2011 14:28
// 6 october 2011 2:28 pm
see :
The strtotime() function parses an English textual date or time into a Unix timestamp
(the number of seconds since January 1 1970 00:00:00 GMT).
$date = "2011-10-05 14:28";
echo $stamp = strtotime($date) . "<br />"; // outputs 1317904080
echo date("d-m", $stamp); //
WP-Date picker
the relevant code for post dates is here:
<div class="misc-pub-section curtime misc-pub-section-last">
<span id="timestamp">
<?php printf($stamp, $date); ?></span>
<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a>
<div id="timestampdiv" class="hide-if-js"><?php touch_time(($action == 'edit'),1,4); ?></div>
NOTE: the function touch_time() does generate the time picker.
this function is located in
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.