_post_states( WP_Post $post, bool $display = true ): string

Echoes or returns the post states as HTML.

Description

See also

Parameters

$postWP_Postrequired
The post to retrieve states for.
$displaybooloptional
Whether to display the post states as an HTML string.

Default:true

Return

string Post states string.

Source

function _post_states( $post, $display = true ) {
	$post_states      = get_post_states( $post );
	$post_states_html = '';

	if ( ! empty( $post_states ) ) {
		$state_count = count( $post_states );

		$i = 0;

		$post_states_html .= ' — ';

		foreach ( $post_states as $state ) {
			++$i;

			$separator = ( $i < $state_count ) ? ', ' : '';

			$post_states_html .= "<span class='post-state'>{$state}{$separator}</span>";
		}
	}

	/**
	 * Filters the HTML string of post states.
	 *
	 * @since 6.9.0
	 *
	 * @param string                 $post_states_html All relevant post states combined into an HTML string for display.
	 *                                                 E.g. `&mdash; <span class='post-state'>Draft, </span><span class='post-state'>Sticky</span>`.
	 * @param array<string, string>  $post_states      A mapping of post state slugs to translated post state labels.
	 *                                                 E.g. `array( 'draft' => __( 'Draft' ), 'sticky' => __( 'Sticky' ), ... )`.
	 * @param WP_Post                $post             The current post object.
	 */
	$post_states_html = apply_filters( 'post_states_html', $post_states_html, $post_states, $post );

	if ( $display ) {
		echo $post_states_html;
	}

	return $post_states_html;
}

Hooks

apply_filters( ‘post_states_html’, string $post_states_html, array<string, , WP_Post $post )

Filters the HTML string of post states.

Changelog

VersionDescription
5.3.0Added the $display parameter and a return value.
2.7.0Introduced.

User Contributed Notes

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