PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.3
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.3
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / src / integrations / blocks / abstract-dynamic-block.php

abstract-dynamic-block.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.3, at src/integrations/blocks/abstract-dynamic-block.php

71 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Yoast\WP\SEO\Integrations\Blocks;
4
5 use Yoast\WP\SEO\Integrations\Integration_Interface;
6
7 /**
8 * Dynamic_Block class.
9 */
10 abstract class Dynamic_Block implements Integration_Interface {
11
12 /**
13 * The name of the block.
14 *
15 * @var string
16 */
17 protected $block_name;
18
19 /**
20 * The editor script for the block.
21 *
22 * @var string
23 */
24 protected $script;
25
26 /**
27 * {@inheritDoc}
28 */
29 public static function get_conditionals() {
30 return [];
31 }
32
33 /**
34 * {@inheritDoc}
35 */
36 public function register_hooks() {
37 \add_action( 'init', [ $this, 'register_block' ], 11 );
38 }
39
40 /**
41 * Registers the block.
42 *
43 * @return void
44 */
45 public function register_block() {
46 \register_block_type(
47 'yoast-seo/' . $this->block_name,
48 [
49 'editor_script' => $this->script,
50 'render_callback' => [ $this, 'present' ],
51 'attributes' => [
52 'className' => [
53 'default' => '',
54 'type' => 'string',
55 ],
56 ],
57 ],
58 );
59 }
60
61 /**
62 * Presents the block output. This is abstract because in the loop we need to be able to build the data for the
63 * presenter in the last moment.
64 *
65 * @param array $attributes The block attributes.
66 *
67 * @return string The block output.
68 */
69 abstract public function present( $attributes );
70 }
71