plugin = $plugin; $this->hooks(); } /** * Initiate our hooks. * * @since 1.9 */ public function hooks() { add_action( 'init', array( $this, 'register_image_block' ) ); add_filter( 'body_class', array( $this, 'fix_single_view_body_class' ), 20 ); } public function fix_single_view_body_class( $body_class ) { if ( ! is_array( $body_class ) ) { return $body_class; } if ( 'da_image' !== get_post_type() ) { return $body_class; } $body_class = array_diff( $body_class, array( 'has-sidebar' ) ); return $body_class; } function register_image_block() { if( function_exists('register_block_type') ){ wp_register_script( 'drawattention-image-block-js', trailingslashit( $this->plugin->get_plugin_url() ) . 'admin/assets/js/draw-attention-block.js', array( 'wp-blocks', 'wp-element', 'wp-server-side-render', 'wp-block-editor', 'wp-components', 'wp-i18n' ) ); wp_register_style( 'drawattention-image-block-css', trailingslashit( $this->plugin->get_plugin_url() ) . 'admin/assets/css/draw-attention-block.css' ); $images = new WP_Query( array( 'post_type' => 'da_image', 'post_status' => 'publish', 'posts_per_page' => -1, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, ) ); $da_image_key_values = wp_list_pluck( $images->posts, 'post_title', 'ID' ); asort( $da_image_key_values ); wp_localize_script( 'drawattention-image-block-js', 'drawAttentionImages', $da_image_key_values ); register_block_type( 'draw-attention/image', array( 'api_version' => 2, 'editor_script' => 'drawattention-image-block-js', 'editor_style' => 'drawattention-image-block-css', 'keywords' => array( 'image', 'hotspot', 'map' ), 'attributes' => array ( 'id' => array ( 'type' => 'string', 'default' => '', ), ), 'render_callback' => array( $this, 'render' ), ) ); } } function render( $atts ) { return $this->plugin->pro->shortcode( $atts ); } }