block_asset_uri( 'index.js' ) ); } protected function get_block_register_params(): array { return array( 'editor_script_handles' => array( self::JS_SCRIPT_KEY ), ); } public static function register() { $instance = new static(); $instance->register_scripts_and_styles(); $register_params = $instance->get_block_register_params(); register_block_type( 'videopress-hq/' . $instance->get_block_name(), $register_params ); add_filter( 'query_loop_block_query_vars', array( $instance, 'query_loop_block_query_vars' ), 10, 2 ); } public function query_loop_block_query_vars( $query, $block ) { $post_type = $block->context['query']['postType'] ?? ''; if ( 'vp_video' !== $post_type ) { return $query; } $order_by = $block->context['query']['orderBy'] ?? ''; $playlist_slug = $block->context['query']['playlist'] ?? ''; if ( 'playlist' === $order_by && ! empty( $playlist_slug ) ) { $playlist = VideoPressHQPlaylist::get_by_slug( $playlist_slug ); if ( $playlist && $playlist->is_visible_to_current_user() ) { $playlist_query = $playlist->get_posts_query_params(); $query['tax_query'] = $playlist_query['tax_query']; $query['meta_query'] = $playlist_query['meta_query']; $query['orderby'] = $playlist_query['orderby']; $query['order'] = $playlist_query['order']; } } $use_featured_video = $block->context['query']['useFeaturedVideo'] ?? false; $exclude_featured_video = $block->context['query']['excludeFeaturedVideo'] ?? false; if ( ! $use_featured_video && ! $exclude_featured_video ) { return $query; } $currently_featured_video = get_option( 'videopress_hq_featured_video' ); $featured_post = null; if ( ! empty( $currently_featured_video ) ) { $featured_post = get_post( $currently_featured_video ); if ( 'vp_video' !== $featured_post->post_type ) { $featured_post = null; } } if ( $use_featured_video ) { if ( $featured_post ) { $query['p'] = $featured_post->ID; } } elseif ( $featured_post ) { $query['post__not_in'] = array( $featured_post->ID ); } else { $query['offset'] = 1; } return $query; } }