has('feed_block')) { require(JVB_DIR . '/build/feed/render.php'); } require(JVB_DIR . '/build/list/render.php'); require(JVB_DIR . '/build/summary/render.php'); require(JVB_DIR . '/build/forms/render.php'); require(JVB_DIR . '/build/menu/render.php'); if (Features::anyContentHas('is_glossary')) { error_log('Has Glossary Type'); require(JVB_DIR . '/build/glossary/render.php'); } if (Features::forSite()->has('faq') || array_key_exists('faq', JVB_CONTENT)) { require(JVB_DIR . '/build/faq/render.php'); } if (Features::hasIntegration('gmb')) { require(JVB_DIR . '/build/gmbreviews/render.php'); } function jvbRegisterBlocks():void { if (Features::hasIntegration('gmb')) { register_block_type(JVB_DIR . '/build/gmb-reviews'); } // if (jvbSiteUsesFeedBlock()) { // register_block_type( // JVB_DIR . '/build/feed', // [ // 'render_callback' => 'jvbRenderFeedBlock' // ] // ); // } if (Features::anyContentHas('show_directory') || Features::anyTaxonomyHas('show_directory')) { register_block_type( JVB_DIR . '/build/list', [ 'render_callback' => 'jvbRenderListBlock' ] ); } } add_action('init', 'jvbRegisterBlocks'); function jvbRegisterBlockCategory(array $categories):array { return array_merge($categories, [ [ 'slug' => 'jvb', 'title' => get_bloginfo('name'), 'icon' => 'art' ] ]); } add_filter('block_categories_all', 'jvbRegisterBlockCategory'); /** * Enqueue block editor assets */ function jvbEnqueueBlockEditorAssets():void { // Only localize for block editor if (!is_admin()) { return; } // Localize list types for the block wp_localize_script( 'jvb-list-editor-script', // This should match your editor script handle 'jvbListTypes', jvbGlobalDirectoryInfo() ); } add_action('enqueue_block_editor_assets', 'jvbEnqueueBlockEditorAssets');