Пользовательская таксономия не отображается в редакторе Post Gutenberg - PullRequest
0 голосов
/ 26 апреля 2019

Я зарегистрировал пользовательскую таксономию в Wordpress, и я не могу понять, почему она не отображается в стандартных сообщениях Wordpress, так как Гутенберг был представлен. Под этим я подразумеваю, что он не отображается на боковой панели документа при добавлении или редактировании сообщения. То же самое относится и к «категориям» и «тегам», которые, очевидно, являются стандартными таксономиями.

Я гарантировал, что 'show_in_rest' => true присутствует, это регистрация таксономии, но это не имеет никакого значения.

Кажется, что они частично регистрируются, так как они отображаются в разделе "Сообщения" в главном меню слева, что говорит о том, что это может быть связано с Гутенбергом?

Есть идеи?

// Register taxonomy
add_action( 'init', 'register_taxonomy_articles_element' );

function register_taxonomy_articles_element() {

    $labels = array( 
        'name' => _x( 'Elements', 'articles_element' ),
        'singular_name' => _x( 'Element', 'articles_element' ),
        'search_items' => _x( 'Search Elements', 'articles_element' ),
        'popular_items' => _x( 'Popular Elements', 'articles_element' ),
        'all_items' => _x( 'All Elements', 'articles_element' ),
        'parent_item' => _x( 'Parent Element', 'articles_element' ),
        'parent_item_colon' => _x( 'Parent Element:', 'articles_element' ),
        'edit_item' => _x( 'Edit Element', 'articles_element' ),
        'update_item' => _x( 'Update Element', 'articles_element' ),
        'add_new_item' => _x( 'Add New Element', 'articles_element' ),
        'not_found' => _x( 'No Elements found', 'articles_element' ),
        'new_item_element' => _x( 'New Element', 'articles_element' ),
        'separate_items_with_commas' => _x( 'Separate Elements with commas', 'articles_element' ),
        'add_or_remove_items' => _x( 'Add or remove elements', 'articles_element' ),
        'choose_from_most_used' => _x( 'Choose from the most used elements', 'articles_element' ),
        'menu_name' => _x( 'Elements', 'articles_element' )
    );

    $args = array( 
        'labels' => $labels,
        'public' => true,
        'publicly_queryable' => true,
        'show_in_nav_menus' => true,
        'show_in_rest' => true,
        'show_ui' => true,
        'show_tagcloud' => true,
        'hierarchical' => true,
        'rewrite' => true,
        'query_var' => true
    );

    register_taxonomy( 'element', array('post'), $args );
}

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Кажется, что после долгих расследований проблема была не с кодом выше (что правильно). Проблема была со второй пользовательской таксономией, названной «тип». Как оказалось, Wordpress содержит несколько « зарезервированных терминов », один из которых «тип». После переименования этой таксономии обе таксономии работают правильно, в том числе с Гутенбергом.

0 голосов
/ 30 апреля 2019

Поскольку Гутенберг работает на основе REST API, вам необходимо включить поддержку REST API для любого пользовательского типа записи и таксономии. Вам необходимо добавить дополнительный ключ show_in_rest = true в ваш массив $args. Ваш полный код должен выглядеть так:

$args = array( 
    'labels' => $labels,
    'public' => true,
    'show_in_rest' => true, // add support for Gutenberg editor
    'publicly_queryable' => true,
    'show_in_nav_menus' => true,
    'show_in_rest' => true,
    'show_ui' => true,
    'show_tagcloud' => true,
    'hierarchical' => true,
    'rewrite' => true,
    'query_var' => true
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...