15

I can get the permalink of a specific post tag or category, but what if I want to get the permalink of a custom post type? I can't find anything in the Codex or anywhere else about how to do this.

21

How about href="<?php echo get_post_type_archive_link( $post_type ); ?>", where $post_type is your post type?

Further reading: Codex

5

Within the loop, you can simply use the_permalink(). Outside of the loop, you can use get_permalink( $id ).

  • That returns the permalink of a specific post or page. I want to return the permalink of a post type. So, for instance, if there is a post type called "movie reviews", and the permalink of that post type is "www.website.com/movie-reviews", how do I get that permalink? Maybe this is not a true permalink technically, I just want the URL of that post type. – Industrial Themes Oct 25 '11 at 12:48
1

Or, for what it's worth, get_term_link($term, $taxonomy); - Codex.

1

I know this post might be old but just in case someone else is searching the function that does this, here's the one i wrote. $post_type must be passed as a variable :)

if( !function_exists( 'wp_get_post_type_link' )  ){
    function wp_get_post_type_link( &$post_type ){

        global $wp_rewrite; 

        if ( ! $post_type_obj = get_post_type_object( $post_type ) )
            return false;

        if ( get_option( 'permalink_structure' ) && is_array( $post_type_obj->rewrite ) ) {

            $struct = $post_type_obj->rewrite['slug'] ;
            if ( $post_type_obj->rewrite['with_front'] )
                $struct = $wp_rewrite->front . $struct;
            else
                $struct = $wp_rewrite->root . $struct;

            $link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );       

        } else {
            $link = home_url( '?post_type=' . $post_type );
        }

        return apply_filters( 'the_permalink', $link );
    }
}

Hope it helps ! :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.