当前位置: 首页 > 知识库问答 >
问题:

古腾堡自定义元块不保存元到自定义帖子类型

吉嘉珍
2023-03-14

我有一个自定义帖子类型的站点设置来定义主页调用操作框。

标题、描述和特色图像都由edtior的默认块/功能处理,但我正在尝试添加一个自定义块以将url保存到帖子的元。

块正确呈现,但它没有保存元数据,显然调用了< code>updateBlockValue函数。

我使用了几乎相同的代码为页面和帖子创建自定义元块。此方法是否不适用于自定义帖子类型?

这是我正在使用的代码:

服务器端编程语言(Professional Hypertext Preprocessor的缩写)

function wb_blocks() {

    wp_register_script(
        'wb-blocks-js',
        get_template_directory_uri() . '/scripts/block.js',
        array( 'wp-blocks', 'wp-editor', 'wp-element','wp-components' )
    );
    register_block_type( 'ray/homebox-link-url', array(
        'editor_script' => 'wb-blocks-js',
    ) );

}
add_action( 'init', 'wb_blocks' );
function wb_register_block_meta() {

    register_meta( 'post', 'homebox_link_url', array(
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
    ) );

}

add_action( 'init', 'wb_register_block_meta' );

射流研究…

registerBlockType( 'ray/homebox-link-url', {
title: 'Homebox Link',
icon: 'universal-access-alt',
category: 'layout',
attributes: {
    blockValue: {
        type: 'string',
        source: 'meta',
        meta: 'homebox_link_url',
    }
},

edit: function( props ) {
    var setAttributes = props.setAttributes;

    function updateBlockValue( blockValue ) {
        setAttributes({ blockValue });
    }

    return el(
       'div',
       { className: "homebox-link-url" },
        el( 'h5',{}, 'URL to link to:'),
        el (TextControl,
        {
            onChange: updateBlockValue,
            value: props.attributes. blockValue,
        })
    );
},

save: function( props ) {
     return null;
},
} );

共有1个答案

楚德辉
2023-03-14

您的块相关代码看起来不错。

问题可能与自定义帖子类型有关。注册时,必须确保它支持自定义字段:

php prettyprint-override">register_post_type(
  'post-type',
  [
    // […]
    'supports' => [
      // […]
      'custom-fields',
    ],
  ]
);

最后一步确保您的自定义帖子类型公开了 REST API 中的元属性,这是 Gutenberg 用来查看/更新数据的元属性。

资料来源:https://github.com/WordPress/gutenberg/issues/5622#issuecomment-375362438

 类似资料:
  • 我想为wordpress构建一个简单的票证系统插件。因此,我需要一个自定义的帖子类型。但是,如果保存了此帖子类型,则其帖子状态应仅为“发布”。因此,用于发布的整个默认元框都有不必要的字段。我不想要post状态下拉列表,也不想要visiblity设置字段。奇怪的是,即使我在register_post_type的参数中将属性public设置为false,也会显示此字段。 据我所知,自定义post类型的

  • 到现在,我们已经知道元类是什么鬼东西了。 那么,从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候,我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。 首先我们来了解下 __metaclass__ 属性 metaclass,直译为元类,简单的解释就是: 当我们定义了类以后,就可以根据这个类创建出实例,所以:先定义类,然后创建实例。 但是如

  • 我有一个自定义的帖子类型设置,有许多类别和子类别。 我试图做的是创建一个页面,显示特定类别中的所有帖子,并使用一个菜单列出所有类别子类别,以便可以过滤帖子。 我已尝试复制存档模板并将其重命名为分类法-(我的自定义分类法)。php,如果我转到slug,它会显示某些帖子,并使用

  • 我已经创建了一个WordPress自定义帖子类型,然后我创建了REST API自定义endpoint来让所有帖子正常工作。然后,我创建了另一个自定义endpoint,通过ID获取单个帖子。例如http://localhost:8888/WordPress/WP-JSON/LC/v1/cars/120 我已经创建了一些帖子,每次我将路线末端的ID更改为118或116时,它都会显示最新的post-ID

  • 我正在使用WordPress插件高级自定义字段和自定义帖子类型UI。 我构建了一个WP_Query来显示特定的帖子类型,由特定的自定义字段值过滤。 现在,我想通过另一个自定义字段,即出版物的日期,对结果帖子进行排序,而不是使用WordPress的菜单顺序或日期。ACF文档要求在查询参数中指定和。 数组 'post_type'= “每页发布内容”= “元键”= “订购人”= '命令'= 但遗憾的是,

  • 我正在使用高级自定义字段插件,我试图通过分类字段过滤一些自定义帖子,修改WP_Query: 如果我尝试通过文本字段过滤一切正常,WP_Query被修改。但是当字段是一个分类法字段时,我不知道应该传递什么参数,因为它是一个对象。我尝试了分类法名称和分类法ID,但不起作用。 是否可以通过分类字段进行筛选?我应该传递的什么参数?谢谢! 更新-结构: 自定义帖子:“递归操作系统” 自定义分类Slug:'r