post_type_archive_title( string $prefix = '', bool $display = true ): string|null
- Since
- 3.1.0
- Source
wp-includes/general-template.php:1529
Description
This is optimized for archive.php and archive-{$post_type}.php template files for displaying the title of the post type.
Parameters
$prefixstringoptional- What to display before the title.Default:
'' $displaybooloptional- Whether to display or retrieve title. Default true.Default:
true
Return
string|null- Title when retrieving, null when displaying or on failure.
Cost profile
Measured from the compiled opcodes, not from a stopwatch. Every number here is identical on any machine that runs the same PHP version, and every function in core is ranked by these figures.
- Cost class
- Trivial
- Scaling
- Constant
- Instructions
- 6–32
- Plugin surface
- 1 hook
- Called by
- 4
Touches nothing outside its own arguments.
No loop in the body: the same number of instructions runs whatever you pass in.
Executed per call on PHP 8.4, depending on the branch taken. The body compiles to 35.
Third-party callbacks on 'post_type_archive_title' run inside this call, and their cost is not bounded by anything here.
4 places in core call this, so the cost is paid more often than your own code shows.
What it touches
- hookthird-party callbacks
apply_filters()called directly
Further down the call graph this can also reach query, option, cache, serialize and transient — those are the worst case, several calls deep and usually down an error path, not what a normal call pays.
What one call costs · 3 distinct outcomes
One number would be a lie: the work depends on which branch runs. These are every distinct cost post_type_archive_title() can have, taken from its control-flow graph on PHP 8.4.
| When | Instructions | Calls it makes |
|---|---|---|
!is_post_type_archive() | 6 | is_post_type_archive() |
is_post_type_archive() && !is_array($post_type) | 27–28 | is_post_type_archive()get_query_var()get_post_type_object()apply_filters() |
is_post_type_archive() && is_array($post_type) | 31–32 | is_post_type_archive()get_query_var()reset()get_post_type_object()apply_filters() |
Across PHP versions
| PHP | Compiled | Executed | Branches | Notes |
|---|---|---|---|---|
7.4 | 35 | 6–32 | 3 | Compiles to the same instructions |
8.1 | 35 | 6–32 | 3 | Compiles to the same instructions |
8.2 | 35 | 6–32 | 3 | Compiles to the same instructions |
8.3 | 35 | 6–32 | 3 | Compiles to the same instructions |
8.4 | 35 | 6–32 | 3 | Compiles to the same instructions |
Oldest PHP that compiles this body: 7.4. An instruction is not a fixed amount of time, so a version with the same count is not necessarily the same speed; what the count rules out is a difference in the work itself.
Hooks fired · 1
One hook fires while post_type_archive_title() runs, in this order:
- apply_filters( post_type_archive_title )filterline 1549 (+20 into the body)
Filters the post type archive title.
Uses · 4
- is_post_type_archive()Determines whether the query is for an existing post type archive page.
- get_query_var()Retrieves the value of a query variable in the WP_Query class.
- get_post_type_object()Retrieves a post type object by name.
- apply_filters()Calls the callback functions that have been added to a filter hook.
Used by · 4
- get_the_archive_title()Retrieves the archive title based on the queried object.
- twentynineteen_get_the_archive_title()Filters the default archive titles.
- wp_get_document_title()Returns document title for the current page.
- wp_title()Displays or retrieves page title for all areas of blog.
Source
function post_type_archive_title( $prefix = '', $display = true ) { if ( ! is_post_type_archive() ) { return null; } $post_type = get_query_var( 'post_type' ); if ( is_array( $post_type ) ) { $post_type = reset( $post_type ); } $post_type_obj = get_post_type_object( $post_type ); /** * Filters the post type archive title. * * @since 3.1.0 * * @param string $post_type_name Post type 'name' label. * @param string $post_type Post type. */ $title = apply_filters( 'post_type_archive_title', $post_type_obj->labels->name, $post_type ); if ( $display ) { echo $prefix . $title; } else { return $prefix . $title; }}History
Introduced in 3.1.0. One change between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
string|void to string|null.verified against sourceAbout this page
- Parsed data
- Generated from the wordpress-develop 7.0.4 tag, from
src/wp-includes/general-template.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.