get_post_type_archive_link( string $post_type )

Retrieves the permalink for a post type archive.


25 related functions found for: get_post_type_archive_link

Top ↑

Related terms found for this post

TaxonomyTerms
wp-parser-related-wordsarchiv, archive, get, link, link-template-php, locat, location, post, post-typ, post-type, type, wp-includes
wp-parser-packageTemplate, WordPress
wp-parser-source-filewp-includes/link-template.php

Top ↑

Terms Used Terms Used

Terms used in the related posts query

  • archiv
  • archive
  • get
  • link
  • link-template-php
  • locat
  • location
  • post
  • post-typ
  • post-type
  • Template
  • type
  • wp-includes
  • wp-includes/link-template.php
  • template

Top ↑

Description Description


Top ↑

Parameters Parameters

$post_type

(string) (Required) Post type.


Top ↑

Return Return

(string|false) The post type archive permalink.


Top ↑

Source Source

File: wp-includes/link-template.php

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' === $post_type ) {
		$show_on_front = get_option( 'show_on_front' );
		$page_for_posts  = get_option( 'page_for_posts' );

		if ( 'page' == $show_on_front && $page_for_posts ) {
			$link = get_permalink( $page_for_posts );
		} else {
			$link = get_home_url();
		}
		/** This filter is documented in wp-includes/link-template.php */
		return apply_filters( 'post_type_archive_link', $link, $post_type );
	}

	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 );
	}

	/**
	 * Filters the post type archive permalink.
	 *
	 * @since 3.1.0
	 *
	 * @param string $link      The post type archive permalink.
	 * @param string $post_type Post type name.
	 */
	return apply_filters( 'post_type_archive_link', $link, $post_type );
}

Top ↑

Changelog Changelog

Changelog
Version Description
4.5.0 Support for posts was added.
3.1.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.