-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to get core-editor
data in Site Editor for Templates or Template Parts
#44477
Comments
@ALJ There are some different selectors in the site editor: const templateType = wp.data.select( 'core/edit-site' ).getEditedPostType();
const templateId = wp.data.select( 'core/edit-site' ).getEditedPostId(); If you're working on a block and trying to make it work in both the post editor and site editor, that may be a bit challenging. You can probably check for the availability of 'core/edit-site' selectors: if ( wp.data.select( 'core/edit-site' ) ) {
// This is the site editor
} |
Thank you @talldan, that's exactly what I was looking for. I missed that data store in the documentation. |
thanks @talldan i was thinking to use your example to save some additional content whenever the site-editor.php is used on template parts
I checked the functions of core/edit-site But none the functions would return the actual post id of the wp_template_part within the wp_posts table. I could try to use wp-json like
but i suppose i would get the content of before the save instead of after the save Any ideas on how to get the actual id and context of the template part within
thanks |
this is also discussed within #53230 |
Description
I regularly use
select('core/editor').getCurrentPostType()
to read the type of post currently being edited in the block editor. I use this to tailor the editor and allow certain blocks for ease of editing. This works wonderfully onpost
,page
, and any custom post type. But, this does not work in the Site Editor when editing a Template or Template Part.I'm eager to find out if there is any way to identify exactly which Template or Template Part is currently being edited.
Without that data, I can't streamline the editor to, e.g., provide a footer-specific block in the "Footer" Template Part only. Without this, the otherwise excellent #42729 isn't as useful as custom post types are to let us simplify the experience for content editors.
Step-by-step reproduction instructions
The following examples use [email protected] with the TwentyTwentyTwo theme active. I have tried with and without [email protected] active, and the results are the same.
Baseline example on a
post
(i.e. working data stores providing good data)wp.data.select('core/editor').getCurrentPostType()
✅ See
"post"
returned, which is what I expectwp.data.select('core/editor').getCurrentPostId()
✅ See
837
(or whatever ID you have) returned, which is what I expectNon-working example in the Site Editor
Appearance
>Editor
Home
templatewp.data.select('core/editor').getCurrentPostType()
❌ See
null
returned, which is surprising. I expect to seewp_template
(orwp_template_part
when editing a Template Part).wp.data.select('core/editor').getCurrentPostId()
❌ See
null
returned, which is surprising. I expect to seetwentytwentytwo//home
(ortwentytwentytwo//header
when editing the Header Template Part).Screenshots, screen recording, code snippet
No response
Environment info
Please confirm that you have searched existing issues in the repo.
Yes
Please confirm that you have tested with all plugins deactivated except Gutenberg.
Yes
The text was updated successfully, but these errors were encountered: