wp_is_rest_endpoint()
Проверяет, является ли текущий запрос запросом к REST API.
Это может быть отдельный запрос к REST API или внутренний запрос, отправленный в процессе загрузки обычной страницы.
Хуки из функции
Возвращает
true|false. true при запросе к REST API, false в остальных случаях.
Использование
wp_is_rest_endpoint();
Примеры
#1 Примеры использования
Пример из кода плагина Pods – Custom Content Types and Fields из файла pods/src/Pods/WP/Bindings.php.
/**
* Get the bound value for a bound block.
*
* @since 3.2.0
*
* @param array $source_args List of source arguments from the block.
* @param WP_Block $block_instance The block instance.
* @param string $attribute_name The name of the block attribute.
*
* @return string The bound value.
*/
public function get_value( $source_args, $block_instance, $attribute_name ) {
if ( empty( $source_args['field'] ) ) {
if ( is_admin() || wp_is_rest_endpoint() || pods_is_admin() ) {
return __( 'You must provide the "field" of the field to bind.', 'pods' );
}
return '';
}
/** @var Field $field_block */
$field_block = pods_container( 'pods.blocks.field' );
if ( ! $field_block ) {
if ( is_admin() || wp_is_rest_endpoint() || pods_is_admin() ) {
return __( 'Pods blocks are not enabled.', 'pods' );
}
return '';
}
$value = $field_block->render( $source_args, '', $block_instance );
// Only support full HTML for the content attribute.
if ( 'content' !== $attribute_name ) {
$value = wp_strip_all_tags( $value );
}
return $value;
}
Пример из кода плагина Markup Markdown из файла MarkupMarkdown/Core/Support.php.
/**
* Output the rendering of markdown
*
* @since 3.3.4
* @access public
*
* @return Void
*/
public function whitelist_wp_api() {
if ( ! wp_is_rest_endpoint() ) :
return false;
endif;
$this->prepare_markdown_editor();
# Allow markdown on REST API with terms description
add_filter( 'rest_prepare_category', array( $this, 'prepare_desc_field' ), 10, 3 );
add_filter( 'rest_prepare_post_tag', array( $this, 'prepare_desc_field' ), 10, 3 );
if ( function_exists( 'get_taxonomies' ) ) :
$my_taxonomies = get_taxonomies( array( 'show_in_rest' => true, '_builtin' => false ) );
foreach( $my_taxonomies as $tax ) :
add_filter( 'rest_prepare_' . $tax, array( $this, 'prepare_desc_field' ), 10, 3 );
endforeach;
endif;
$this->set_content_filters();
}
/**
* Tiny switch to apply or not the markdown filters
* Since 3.0: Checking the post type inside the loop
* https://developer.wordpress.org/reference/hooks/the_content/
*
* @access public
* @since 2.0
*
* @param String $field_content the HTML content
* @param Integer $cache_allowed 1 if cache is allowed with the field
*
* @return String $content The modified HTML content
*/
private function content_data( $field_content, $cache_allowed ) {
if ( wp_is_rest_endpoint() || ( ( is_home() || is_front_page() || is_singular() || is_archive() ) && in_the_loop() && is_main_query() ) ) :
if ( post_type_supports( get_post_type(), 'markup_markdown' ) ) :
return apply_filters( 'post_markdown2html', $field_content, $cache_allowed );
else :
return $field_content;
endif;
else :
return $field_content;
endif;
}
Заметки
- Global. WP_REST_Server. $wp_rest_server REST server instance.
Список изменений
| С версии 6.5.0 | Введена. |