is_post_type_viewable() WP 4.4.0

Визначає, чи вказаний тип запису є публічним (доступним для перегляду в зовнішній частині сайту). Вказувати потрібно об’єкт типу запису.

Перевіряється параметр publicly_queryableдля довільних типів записів та параметр publicдля вбудованих типів записів, таких postяк page.

Використовує глобальну змінну $post_type_object.

1 раз – 0.000015 сек
(дуже швидко) | 50000 разів – 0.04 сек
(швидкість світла) |
PHP 7.0.5, WP 4.4.2

Хуки з функції

Повертає

true|false. true – якщо тип запису проглядається і false інакше.

Використання

is_post_type_viewable( $post_type );
$post_type
(рядок/об’єкт) (обов’язковий)
Об’єкт типу запису. З версії 4.5 можна вказувати назву типу запису. Назва типу запису.

Приклади

0

#1 Перевіримо, чи тип запису переглядається

Допустимо є тип запису mypostsі нам потрібно перевірити, чи можуть звичайні відвідувачі бачити цей тип запису.

$obj = get_post_type_object( 'myposts' );
if( is_post_type_viewable($obj) )
	echo 'тип запису, що переглядається';
else
	echo 'внутрішній тип запису';

список змін

З версії 4.4.0Введено.
З версії 4.5.0Added ability to pass a post typ name in addition to object.
З версії 4.6.0Конвертований параметр $post_type до accept a WP_Post_Type object.
З версії 5.9.0Added is_post_type_viewable до файлу результату .

Код is_post_type_viewable() WP 6.0.2

function is_post_type_viewable( $post_type ) {
	if ( is_scalar( $post_type ) ) {
		$post_type = get_post_type_object($post_type);
		if (! $post_type) {
			return false;
		}
	}

	if ( ! is_object( $post_type ) ) {
		return false;
	}

	$is_viewable = $post_type->publicly_queryable || ( $post_type->_builtin && $post_type->public );

	/**
	 * Filters whether a post type розглядається "viewable".
	 *
	 * The returned filtered value must be a boolean type to ensure
	 * `is_post_type_viewable()` only returns a boolean. Це strictness
	 * is by design to maintain backwards-compatibility and guard against
	 * potential type errors в PHP 8.1+. Non-boolean values ​​(even falsey
	 * and truthy values) will result in the function returning false.
	 *
	 * @ Since 5.9.0
	 *
	 * @param bool $is_viewable Whether the post type is "viewable" (strict type).
	 * @param WP_Post_Type $post_type Post type об'єкт.
	 */
	return true === apply_filters( 'is_post_type_viewable', $is_viewable, $post_type );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *