Using @wordpress/scripts 28.x with WordPress
Using @wordpress/scripts 28.x with WordPress <6.5
Using @wordpress/scripts 28.x with WordPress <6.5
I was bitten by this as well, and it caused me much frustration. I had exactly the same nested block duplication problem that you described above. I was able to solve this issue by specifying an apiVersion for my custom block. E.g.: registerBlockType(“custom-cafe-theme/custom-column”,{ apiVersion: 2, // or 3 title: “Custom Column”, attributes: { imgID: { … Read more
The filename is not really relevant. You should check block.json to see where the file is actually being used. I would guess that it’s being used for the viewScript property, in which case you can check its purpose by looking for the documentation for that property, rather than anything about “view.js” alone. As noted in … Read more
Actually, you do not need to worry about adding the Masonry’s script handle to the dependencies array in the asset file (index.asset.php). All you needed to do to make your Masonry code work properly is by using the script property to add the masonry (and imagesloaded) as dependencies for your editor and view/front-end scripts. “editorScript”: … Read more
I didn’t declare the viewStyle for frontend and thus the css wasn’t being enqueued. { “viewStyle”: [ “file:./view.css”, “example-view-style” ] } build/view.css had all the needed css for swiper – it just wasn’t being declared with viewStyle https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#view-style . view.css: /*!*******************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/swiper/swiper-bundle.css ***! \*******************************************************************************************************************************************************************************************/ /** * Swiper 11.0.7 * Most modern mobile touch … Read more
I ended up writing a function that wraps the <p> tags in the block comments. This forced the content to be individual paragraph blocks in the editor. My content was only paragraphs but other block types would need to be implemented as well. function blockify_content($content) { //remove empty <p> $pattern = “/<p[^>]*><\\/p[^>]*>/”; $content = preg_replace($pattern, … Read more
Unfortunately, this is not yet possible. This has been requested at https://github.com/WordPress/gutenberg/issues/27809 and if you have a github account, you can subscribe to the issue and keep track of its progress.
Use a Global Styles Filter to override the style: add_filter( ‘wp_theme_json_data_default’, function ( $theme_json ){ $new_data = array( ‘version’ => 2, ‘styles’ => [ ‘blocks’ => [ ‘core/embed’ => [ ‘spacing’ => [ ‘margin’ => [ ‘top’ => ‘2rem’ ] ] ] ] ] ); return $theme_json->update_with( $new_data ); }); An alternative that may also … Read more
Here’s how can you get the ID and email address of the author of the currently being edited post: // Get the post author’s ID. let postAuthorId = wp.data.select( ‘core/editor’ ).getCurrentPostAttribute( ‘author’ ); /* or you can also use this: let postAuthorId = wp.data.select( ‘core/editor’ ).getEditedPostAttribute( ‘author’ ); */ // Get the post author’s email. … Read more
I’m pasting the answer I got from a developer in the Gutenberg repository. Just add a webpack.config.js file at the root of your project with the following contents: const defaultConfig = require( ‘@wordpress/scripts/config/webpack.config’ ); module.exports = { …defaultConfig, entry: { …defaultConfig.entry(), index: ‘./src/index.js’, }, }; This will build all the blocks in /src/blocks/ folder and … Read more