WordPress как на ладони
wordpress jino

display_post_states хук-фильтр . WP 2.8.0

Позволяет добавить состояние (метку) записи в таблицу записей в админке. Такую метку состояния, можно видеть, например, когда запись в черновике, на утверждении и т.д.

Использование

add_filter( 'display_post_states', 'filter_function_name_6497', 10, 2 );
function filter_function_name_6497( $post_states, $post ){
	// filter...

	return $post_states;
}
$post_states(Массив)
Массив меток-состояний записи.
$post(WP_Post)
Объект текущей записи, для которой фильтруются состояния.

Примеры

#1 Добавим свои метки состояния записи в таблице постоянных страниц

Добавлять метки будет для записей типа page.

## метка для специальных страниц в таблице page записей
add_filter( 'display_post_states', 'special_page_mark', 10, 2 );
function special_page_mark( $post_states, $post ){
	if( $post->post_type === 'page' ){
		if( $post->post_name === 'my-account' ){
			$post_states[] = 'Старница "Мой аккаунт"';
		}

		if( in_array( $post->post_name, ['cart','shop','checkout'] ) ){
			$post_states[] = 'Особая страница';
		}
	}

	return $post_states;
}

Получим

Связи хука

Используется в: _post_states()

Фрагменты кода хука display_post_states

Фрагмент из: wp-admin/includes/template.php WP 4.9
...

		if ( intval( get_option( 'page_for_posts' ) ) === $post->ID ) {
			$post_states['page_for_posts'] = __( 'Posts Page' );
		}
	}

	/**
	 * Filters the default post display states used in the posts list table.
	 *
	 * @since 2.8.0
	 * @since 3.6.0 Added the `$post` parameter.
	 *
	 * @param array   $post_states An array of post display states.
	 * @param WP_Post $post        The current post object.
	 */
	$post_states = apply_filters( 'display_post_states', $post_states, $post );

	if ( ! empty($post_states) ) {
		$state_count = count($post_states);
		$i = 0;
		echo ' — ';
		foreach ( $post_states as $state ) {
			++$i;
			( $i == $state_count ) ? $sep = '' : $sep = ', ';
			echo "<span class='post-state'>$state$sep</span>";
		}
	}

}

/**
...
display_post_states Комментариев нет

Здравствуйте, !

Ваш комментарий