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.
5 Answers
How about href="<?php echo get_post_type_archive_link( $post_type ); ?>"
, where $post_type
is your post type?
Further reading: Codex
-
Small improvement; <?php echo get_post_type_archive_link( $post->post_type ); ?> Using $post->post_type instead of $post_type gives the slug directly.– rwzdoornCommented Apr 19, 2022 at 13:40
Within the loop, you can simply use the_permalink()
. Outside of the loop, you can use get_permalink( $id )
.
-
2That 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. Commented Oct 25, 2011 at 12:48
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 ! :)
@Stefan KRUGER
curious why the value is passed by reference: &$post_type
aside: I dont' understand why i can supply an answer, which is not what this is, but NOT a comment, which is what this is. that seems backward.