wp post block import

Imports blocks from a file into a post.

In this article

Note: This command is not part of a stable WP-CLI release yet. To use it now, switch to the nightly build with wp cli update --nightly. If you installed the command as a separate package, updating that package may be enough.
Imports blocks from a JSON or YAML file into a post’s content.

Options

See the argument syntax reference for a detailed explanation of the syntax conventions used.
<id>
The ID of the post to import blocks into.
[–file=<file>]
Input file path. If not specified, reads from STDIN.
[–position=<position>]
Where to insert imported blocks. Accepts ‘start’, ‘end’, or a numeric index. — default: end —
[–replace]
Replace all existing blocks instead of appending.
[–porcelain]
Output just the number of blocks imported.

Examples

# Import blocks from a JSON file, append to end of post.
$ wp post block import 123 --file=blocks.json
Success: Imported 5 blocks into post 123.

# Import blocks at the beginning of the post.
$ wp post block import 123 --file=blocks.json --position=start
Success: Imported 5 blocks into post 123.

# Replace all existing content with imported blocks.
$ wp post block import 123 --file=blocks.json --replace
Success: Imported 5 blocks into post 123.

# Import from STDIN (piped from another command).
$ cat blocks.json | wp post block import 123
Success: Imported 5 blocks into post 123.

# Copy blocks from one post to another.
$ wp post block export 123 | wp post block import 456
Success: Imported 5 blocks into post 456.

# Import YAML format.
$ wp post block import 123 --file=blocks.yaml
Success: Imported 3 blocks into post 123.

# Get just the count of imported blocks for scripting.
$ wp post block import 123 --file=blocks.json --porcelain
5

Global Parameters

These global parameters have the same behavior across all commands and affect how WP-CLI interacts with WordPress.
Argument Description
--path=<path> Path to the WordPress files.
--url=<url> Pretend request came from given URL. In multisite, this argument is how the target site is specified.
--ssh=[<scheme>:][<user>@]<host\|container>[:<port>][<path>] Perform operation against a remote server over SSH (or a container using scheme of “docker”, “docker-compose”, “docker-compose-run”, “vagrant”).
--ssh-args=<args> Pass additional arguments to SSH (or other tools specified by –ssh scheme).
--http=<http> Perform operation against a remote WordPress installation over HTTP.
--user=<id\|login\|email> Set the WordPress user.
--skip-plugins[=<plugins>] Skip loading all plugins, or a comma-separated list of plugins. Note: mu-plugins are still loaded.
--skip-themes[=<themes>] Skip loading all themes, or a comma-separated list of themes.
--skip-packages Skip loading all installed packages.
--require=<path> Load PHP file before running the command (may be used more than once).
--exec=<php-code> Execute PHP code before running the command (may be used more than once).
--context=<context> Load WordPress in a given context.
--[no-]color Whether to colorize the output.
--debug[=<group>] Show all PHP errors and add verbosity to WP-CLI output. Built-in groups include: bootstrap, commandfactory, and help.
--prompt[=<assoc>] Prompt the user to enter values for all command arguments, or a subset specified as comma-separated values.
--quiet Suppress informational messages.
--alias=<name> Name of the alias to use. Aliases can reference local WordPress installations or remote SSH connections. Aliases are defined in the wp-cli.yml file.
--assume-https Set $_SERVER[‘HTTPS’] to make WordPress treat the site as HTTPS. Use when WordPress is behind an HTTPS proxy or load balancer.

Command documentation is regenerated at every release. To add or update an example, please submit a pull request against the corresponding part of the codebase.