自定义分类法未显示在Post Gutenberg编辑器中

时间:2019-04-26 15:45:48

标签: php wordpress custom-taxonomy wordpress-gutenberg

我已经在Wordpress中注册了自定义分类法,由于引入了Gutenberg,所以我无法弄清为什么它没有在标准的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 );
}

4 个答案:

答案 0 :(得分:1)

如果仍然存在显示分类法或Gutenberg编辑器的问题,请在自定义帖子类型和分类法中同时添加'show_in_rest' => true,

答案 1 :(得分:1)

您面临的问题可以通过将列表中的 'rewrite' 属性从 true 更改为 array( 'slug' => 'your-taxonomy-slug' ) 来解决,这样新的 'rewrite' 应该看起来像 {{1} } 并且您可以放置​​任何 slug 而不是 'rewrite' => array( 'slug' => 'your-taxonomy-slug' )

为什么这应该起作用我不完全理解,但看起来块编辑器使用了 Rest API,由于某种原因无法在不重写 slug 的情况下处理分类法!那里有些奇怪,因为所有其他功能都可以正常工作,只是出于某种原因才在古腾堡内部。

如果这不起作用,则可能是主题或插件冲突...尝试停用某些内容以查看导致冲突的原因。

答案 2 :(得分:0)

由于Gutenberg基于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
);

答案 3 :(得分:0)

经过大量调查,似乎上面的代码没有问题(正确)。问题在于第二个自定义分类法,称为“类型”。事实证明,Wordpress包含许多“ reserved terms”,其中一个是“ type”。重命名此分类法后,包括Gutenberg在内的两个分类法都可以正常工作。