|
1 | 1 | <?php |
2 | 2 | /** |
3 | | - * Plugin Name: Blockparty Faq |
4 | | - * Description: A Gutenberg block for SEO friendly FAQ in an accessible accordion |
| 3 | + * Plugin Name: Blockparty FAQ |
| 4 | + * Description: A FAQ block for WordPress Editor that provided structured data based on FAQ schema. |
5 | 5 | * Requires at least: 6.2 |
6 | 6 | * Requires PHP: 8.1 |
7 | | - * Version: 1.0.2 |
| 7 | + * Version: 2.0.0 |
8 | 8 | * Plugin URI: https://beapi.fr |
9 | 9 | * Author: Be API Technical team |
10 | 10 | * Author URI: https://beapi.fr |
|
41 | 41 | } |
42 | 42 |
|
43 | 43 | // Plugin constants |
44 | | -define( 'BLOCKPARTY_FAQ_VERSION', '1.0.2' ); |
| 44 | +define( 'BLOCKPARTY_FAQ_VERSION', '2.0.0' ); |
45 | 45 |
|
46 | 46 | // Plugin URL and PATH |
47 | 47 | define( 'BLOCKPARTY_FAQ_DIR', plugin_dir_path( __FILE__ ) ); |
|
50 | 50 | require_once BLOCKPARTY_FAQ_DIR . 'includes/hooks/schema.php'; |
51 | 51 | require_once BLOCKPARTY_FAQ_DIR . 'includes/schema/faq_schema.php'; |
52 | 52 |
|
| 53 | +/** |
| 54 | + * Initialize plugin blocks. |
| 55 | + * |
| 56 | + * @since 1.0.0 |
| 57 | + * |
| 58 | + * @return void |
| 59 | + */ |
53 | 60 | function blockparty_faq_init(): void { |
54 | | - register_block_type( __DIR__ ); |
| 61 | + load_plugin_textdomain( 'blockparty-faq', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); |
| 62 | + |
| 63 | + // Register main block (from src/faq/block.json) |
| 64 | + register_block_type( __DIR__ . '/build/faq' ); |
| 65 | + |
| 66 | + // Register child blocks |
| 67 | + // These blocks are also registered via JavaScript in src/index.js, |
| 68 | + // but we need to register them in PHP so WordPress knows about their block.json metadata |
| 69 | + register_block_type( __DIR__ . '/build/faq-item' ); |
| 70 | + register_block_type( __DIR__ . '/build/faq-question' ); |
| 71 | + register_block_type( __DIR__ . '/build/faq-answer' ); |
| 72 | + |
| 73 | + // Load translations for JS |
| 74 | + wp_set_script_translations( 'blockparty-faq-editor-script', 'blockparty-faq', BLOCKPARTY_FAQ_DIR . 'languages' ); |
| 75 | + |
| 76 | + // Pass PHP values to main script |
| 77 | + $constants = [ |
| 78 | + 'accordionConfig' => apply_filters( |
| 79 | + 'beapi_faq_block_config', |
| 80 | + [ |
| 81 | + 'allowMultiple' => true, |
| 82 | + 'closedDefault' => true, |
| 83 | + 'forceExpand' => false, |
| 84 | + 'hasAnimation' => true, |
| 85 | + 'openMultiple' => false, |
| 86 | + 'panelSelector' => '.faq__panel', |
| 87 | + 'prefixId' => 'block-faq', |
| 88 | + 'triggerSelector' => '.faq__trigger', |
| 89 | + ] |
| 90 | + ), |
| 91 | + ]; |
| 92 | + |
| 93 | + wp_localize_script( 'blockparty-faq-view-script', 'beapiFaqBlock', $constants ); |
| 94 | + |
| 95 | + do_action( 'blockparty_faq_init' ); |
55 | 96 | } |
56 | 97 |
|
57 | 98 | add_action( 'init', __NAMESPACE__ . '\\blockparty_faq_init' ); |
0 commit comments