Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Get 'Training' custom post type meta info group variables.
- *
- * @uses get_post_meta()
- * @uses esc_attr()
- */
- function tr2014_get_training_first_date( $post ) {
- $options = get_post_meta( $post->ID, '_tr_training_option_group', true );
- $date_start = false;
- foreach ( (array) $options as $key => $option ) {
- if ( !empty( $option['_tr_training_date_start'] ) ) {
- $date_start = strtotime( $option['_tr_training_date_start'] );
- break;
- }
- }
- return $date_start;
- }
- /**
- * Create custom post types for 'Training'
- */
- function tr2014_create_post_types() {
- register_post_type( 'tr_training',
- array(
- 'labels' => array(
- 'name' => __( 'Trainingen', 'tr2014' ),
- 'singular_name' => __( 'Training', 'tr2014' ),
- 'add_new' => __( 'Nieuwe training', 'tr2014' ),
- 'add_new_item' => __( 'Nieuwe training toevoegen', 'tr2014' ),
- 'edit_item' => __( 'Wijzig training', 'tr2014' ),
- 'new_item' => __( 'Nieuwe training toevoegen', 'tr2014' ),
- 'view_item' => __( 'Training bekijken', 'tr2014' ),
- 'search_items' => __( 'Trainingsaanbod doorzoeken', 'tr2014' ),
- 'not_found' => __( 'Geen trainingen gevonden.', 'tr2014' ),
- 'not_found_in_trash' => __( 'Geen trainingen gevonden in Prullenbak.', 'tr2014' ),
- 'all_items' => __( 'Alle trainingen', 'tr2014' )
- ),
- 'public' => true,
- 'query_var' => true,
- 'rewrite' => false,
- 'menu_position' => 25,
- 'menu_icon' => 'dashicons-groups',
- 'capability_type' => 'page',
- 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom_fields' ),
- )
- );
- }
- add_action( 'init', 'tr2014_create_post_types' );
- /**
- * Properly replace custom post type(s) permalinks.
- */
- function tr2014_post_type_link( $url, $post, $leavename = false ) {
- if ( !is_single() && get_post_type( $post ) == 'tr_training' ) {
- $new_url = $url;
- $re_search = array(
- '%startdate%',
- $leavename ? '' : '%postname%',
- '%post_id%',
- $leavename ? '' : '%pagename%',
- );
- $date_start = tr2014_get_training_first_date( $post );
- if ( !empty( $url ) && !in_array( $post->post_status, array('draft', 'pending', 'auto-draft') ) ) {
- if ( $date_start ) {
- // Append start date to permalink, if it exists
- $new_url .= '/%startdate%';
- }
- // Replace %startdate% with formatted date, e.g. "2014-12-23"
- $re_replace = array(
- ( $date_start ? date( 'Y-m-d', $date_start ) : ''),
- $post->post_name,
- $post->ID,
- $post->post_name,
- );
- $new_url = str_replace( $re_search, $re_replace, $new_url );
- } else {
- // Not using rewrite/permalink option
- }
- }
- return $new_url;
- }
- add_filter( 'post_type_link', 'tr2014_post_type_link', 10, 2 );
- /**
- * Add support for %startdate% tag in permalinks.
- */
- function tr2014_rewrite_tags() {
- //add_rewrite_tag( '%startdate%', '([0-9]{4}-[0-9]{2}-[0-9]{2})$', 'startdate=' );
- //add_permastruct( 'tr_training', '/trainings/%postname%/%startdate%', false );
- add_rewrite_tag( '%training%', '([^/]+)(/.*)$', 'tr_training=' );
- add_rewrite_tag( '%startdate%', '([^/]+)(/.*)$', 'tr_training=' );
- add_permastruct( 'tr_training', '/trainings/%training%/%startdate%', false );
- //add_rewrite_tag( '%postname%', '([^/]+)', 'tr_training=' );
- //add_permastruct( 'tr_training', '/trainings/%postname%', false );
- }
- add_action( 'init', 'tr2014_rewrite_tags', 10, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement