Restringir en las barras laterales de complementos por tipo de publicación
Cuando creo configuraciones para Publicaciones, Páginas o cualquier tipo de publicación personalizada, siempre uso Barras laterales del complemento de Gutenberg. Pero la cuestión es que a veces no desea crear una barra lateral separada para cada tipo de publicación, prefiere mostrar algunos paneles (o incluso campos) para un tipo de publicación y los otros paneles para otro.
Como aquí:

Aquí está el código listo en ESNext.
( function( wp ) {
const { registerPlugin } = wp.plugins;
const { PluginSidebar } = wp.editPost;
const { PanelBody } = wp.components;
const { withSelect } = wp.data;
const { compose } = wp.compose;
const MishaSidebar = ( { postType } ) => {
return (
<PluginSidebar
name="misha-sidebar"
title="Post Meta"
>
<PanelBody title="Any post type">
<p>This is gonna be displayed for all post types.</p>
</PanelBody>
{
'page' == postType &&
<PanelBody title="Only for Pages" initialOpen={ false }>
<p>This panel is going to be displayed only for page post type.</p>
</PanelBody>
}
</PluginSidebar>
)
}
// we are going to use withSelect in order for postype to be available inside
const MishaSidebarwithSelect = withSelect( select => {
return {
postType: select( 'core/editor' ).getCurrentPostType(),
};
} )( MishaSidebar );
// register that sidebar
registerPlugin( 'misha-panel', { render: MishaSidebarwithSelect } );
} )( window.wp );
Como puede ver en el ejemplo anterior, estamos usando withSelectque es HOC (un componente de orden superior), amplía nuestra MishaSidebar componente un poco al proporcionar un nombre de tipo de publicación personalizado, que se fusionará con el componente.
Si desea agregar varios tipos de publicaciones a la condición, puede hacerlo de esta manera:
{
( 'page' == postType || 'post' == postType ) &&
<PanelBody title="Only for Pages" initialOpen={ false }>
También puedes deshabilitar fácilmente toda la barra lateral con estas líneas de código:
const MishaSidebar = ( { postType } ) => {
if ( 'page' !== postType ) {
return null;
}

Misha Rudrastyh
Desarrollo sitios web desde 2008, por lo que es un total de 14 años de experiencia, Dios mío. Sobre todo, me encanta, me encanta, me encanta crear sitios web con WordPress y Gutenberg, algunas ideas y pensamientos que comparto a lo largo de mi blog.
¿Necesitas ayuda de un desarrollador? Contáctame