Support » Plugins » Hacks » register_post_type and rewriting issue

  • I’m attempting something that I’ve gotten to half work.

    I have a custom post type registered as calendar. This post type is essentially an event. I have a custom meta box for the event date, event start time and event end time as well as some other ancillary information.

    What I want to do is have a permalink to this event in this format:


    The year, month, and day variables are NOT the publish year, month, and day, but rather, the values stored in wp_postmeta. I’ve gotten my permalink to format correctly using the meta values, but I get a 404 when visiting. I believe this is because I have not registered the rewrite.

    Here’s the code:

    add_action( 'init', 'create_calendar_type' );
    	function create_calendar_type() {
    	  register_post_type( 'calendar',
    	      'labels' => array(
    	        'name' => __( 'Events' ),
    	        'singular_name' => __( 'Event' )
    	      'public' => true,
    	      'rewrite' => array('slug' => 'events'),
    	      'show_ui' => true,
    	      'capability_type' => post,
    function calendar_link_filter( $post_link, $id = 0, $leavename = FALSE ) {
        	$post = get_post($id);
        	if($post->post_type != 'calendar') {
        		return $post_link;
        	$date = get_post_meta($post->ID,'event-start-date',true);
        	$date = strtotime($date);
        	$str = $post_link;
        	$str = str_replace('%cal_year%',date("Y",$date),$str);
        	$str = str_replace('%cal_month%',date("m",$date),$str);
        	$str = str_replace('%cal_day%',date("d",$date),$str);
        	return $str;

    When I create an event, the permalink correctly formats under the post title upon publish and upon entering a value for the event date.

    I get a 404 after that.

    I’m wondering what I need to do to register the rewrite.

    Any clues into this?

  • The topic ‘register_post_type and rewriting issue’ is closed to new replies.