wp.data.select ('core'). getPostType ('post-type') возвращает неопределенное значение в Гутенберге - PullRequest
0 голосов
/ 27 сентября 2019

Я создаю плагин Wordpress, который опирается на настраиваемые поля, включаемые при регистрации пользовательского типа записи.Я хочу проверить, существует ли ключ custom-fieldstrue) в supports в объекте типа записи.Однако, когда я звоню wp.data.select('core').getPostType('post-type'), он возвращает undefined.Если я вызываю его прямо из консоли, я получаю ожидаемый объект типа поста, поэтому я не уверен, почему он не работает в моем коде.

Я пытался вызвать его из нескольких мест.

Например, при регистрации панели плагинов:

// Loading `wp.editPosts`, `wp.plugins`, etc. excluded for brevity.

const Component = () => {
    const postType = wp.data.select('core/editor').getCurrentPostType();
    const postTypeObj = wp.data.select('core').getPostType(postType);

    if (postTypeObj.supports.hasOwnProperty('custom-fields')) {
        return (
            <PluginDocumentSettingPanel
                name="my-plugin-name"
                title={ __('My Plugin Title', 'pb') }
            >
                <MyPlugin/>
            </PluginDocumentSettingPanel>
        );
    }

    return;
};

registerPlugin('my-plugin-name', {
    render: Component,
    icon: '',
});

или внутри самого плагина через withSelect:

// Loading `wp.compose`, `wp.data`, etc. excluded for brevity.

class MyPlugin extends React.Component {
    constructor(props) {
        super(props);

        this.state = {
            // I'll do something with this later on
            postTypeObj: props.postTypeObj,
        };
    }

    render() {
        return (
            <div></div>
        );
    }
}

export default compose([
    withSelect(select => {
        const {
            getCurrentPostType,
        } = select('core/editor');

        const {
            getPostType,
        } = select('core');

        return {
            postTypeObj: getPostType(getCurrentPostType()),
        }
    }),
])(MyPlugin);

Независимо от того, где я его называю,объект типа post возвращает undefined.

Я использую плагин Gutenberg версии 6.5.0 и версию WordPress 5.2.3.

Любая помощь приветствуется.

...