Block Context
August 7, 2026 ยท View on GitHub
Block Context is a React implementation of WordPress's block context. Block context, much like React's context, is a method for passing and inheriting values deeply through a hierarchy of blocks. Because of the similarities with React's context, the client-side implementation here is quite minimal. It is complemented by equivalent behaviors in the server-side rendering of a block.
Note that the implementation of Block Context is distinct from the BlockEdit context. While it is true that both provide context relevant for the editing of a block, Block Context is implemented separately so as to prioritize it as most identifiable amongst the machinery of block context, and not amongst other client-side editing context of a block.
Usage
Currently, only the Provider component is made available on the public interface of the @wordpress/block-editor module. This can be used to add or override context which can then be consumed by blocks rendered within that context in the block editor.
import { BlockContextProvider } from '@wordpress/block-editor';
function MyCustomPostEditor() {
return (
<BlockContextProvider value={ { postId: 1, postType: 'post' } }>
<BlockEditorProvider { /* ... */ } />
</BlockContextProvider>
);
}
Internal to the @wordpress/block-editor module, a component can access the full Context object, typically for use in combination with useContext.
import { useContext } from 'react';
// Only available internally within `@wordpress/block-editor`!
import BlockContext from '../block-context';
function MyBlockComponent() {
const { postId } = useContext( BlockContext );
return 'The current post ID is: ' + postId;
}
The reason BlockContext is only internally available within the @wordpress/block-editor module is to reinforce the expectation that external consumption of values from block context should be declared on the block registration using the context property.
Props
BlockContextProvider behaves like a standard Context.Provider component. It receives value and children props. The value is merged with the current block context value.
value
- Type:
Record<string,*> - Required: Yes
Context value to merge with current value.
children
- Type:
ReactNode - Required: Yes
Component children.