| | |
| | | exit; |
| | | } |
| | | //Blocks |
| | | if (jvbSiteUsesFeedBlock()) { |
| | | if (Features::forSite()->has('feed_block')) { |
| | | require(JVB_DIR . '/build/feed/render.php'); |
| | | } |
| | | require(JVB_DIR . '/build/list/render.php'); |
| | |
| | | } |
| | | add_filter('block_categories_all', 'jvbRegisterBlockCategory'); |
| | | |
| | | //Get our loaded types |
| | | function jvbRegisterFeedTypes():void |
| | | { |
| | | global $jvb_feed; |
| | | global $jvb_taxonomy_for; |
| | | |
| | | |
| | | wp_localize_script('jvb-feed-block-editor', 'jvbBlockSettings', [ |
| | | 'contentTypes' => $jvb_feed, |
| | | 'taxonomyFor' => $jvb_taxonomy_for |
| | | ]); |
| | | |
| | | |
| | | // Filter for block.json |
| | | add_filter('block_type_metadata', function ($metadata) use ($jvb_feed) { |
| | | if ($metadata['name'] === 'jvb/feed') { |
| | | $metadata['attributes']['contentTypes']['items']['enum'] = array_keys($jvb_feed); |
| | | } |
| | | return $metadata; |
| | | }); |
| | | } |
| | | add_action('wp_loaded', 'jvbRegisterFeedTypes'); |
| | | |
| | | if (jvbSiteUsesFeedBlock()) { |
| | | add_action('rest_api_init', 'jvbGetFeedTypes'); |
| | | function jvbGetFeedTypes():void |
| | | { |
| | | register_rest_route( |
| | | 'jvb/v1', |
| | | 'types', |
| | | [ |
| | | 'permission_callback' => function () { |
| | | return is_user_logged_in(); |
| | | }, |
| | | 'callback' => function () { |
| | | global $jvb_feed; |
| | | return new WP_REST_Response(json_encode((object) $jvb_feed)); |
| | | } |
| | | ] |
| | | ); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Enqueue block editor assets |