get_post_type_archive_link

Definition:
function get_post_type_archive_link( $post_type ) {}

Retrieve the permalink for a post type archive.

Parameters

  • string $post_type: Post type

Defined filters

  • post_type_archive_link
    apply_filters( 'post_type_archive_link', $link, $post_type )

Source code

function get_post_type_archive_link( $post_type ) {

	global $wp_rewrite;

	if ( ! $post_type_obj = get_post_type_object( $post_type ) )

		return false;



	if ( ! $post_type_obj->has_archive )

		return false;



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

		$struct = ( true === $post_type_obj->has_archive ) ? $post_type_obj->rewrite['slug'] : $post_type_obj->has_archive;

		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( 'post_type_archive_link', $link, $post_type );

}

9614

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: