You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.5 KiB

<?php
/**
* Register Favorite movie quote block
*
* @link http://example.com
* @since 1.0.0
*
* @package Movies
* @subpackage Movies/includes
*/
/**
* Register Favorite movie quote block.
*
* @package Movies
* @subpackage Movies/includes
* @author Your Name <email@example.com>
*/
class Favorite_Movie_Quote {
public function __construct() {
add_action( 'init', array( $this, 'register_block' ) );
add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_assets' ) );
add_action( 'enqueue_block_assets', array( $this, 'enqueue_assets' ) );
}
public function register_block() {
wp_register_script(
'favorite-movie-quote-block',
plugin_dir_url( __FILE__ ) . 'favorite-movie-quote-block.js',
array( 'wp-blocks', 'wp-editor', 'wp-element' ),
filemtime( plugin_dir_path( __FILE__ ) . 'favorite-movie-quote-block.js' )
);
register_block_type( 'movies/favorite-movie-quote', array(
'editor_script' => 'favorite-movie-quote-block',
'render_callback' => array( $this, 'render_block' ),
) );
}
public function enqueue_assets() {
wp_enqueue_script(
'favorite-movie-quote-block',
plugin_dir_url( __FILE__ ) . 'favorite-movie-quote-block.js',
array( 'wp-blocks', 'wp-editor', 'wp-element' ),
filemtime( plugin_dir_path( __FILE__ ) . 'favorite-movie-quote-block.js' )
);
}
public function render_block( $attributes ) {
$quote = isset( $attributes['content'] ) ? $attributes['content'] : '';
return '<blockquote>' . $quote . '</blockquote>';
}
}
new Favorite_Movie_Quote();