Запустить кусок кода, когда блок загружен в WordPress - PullRequest
2 голосов
/ 04 апреля 2020

Я создал пользовательский блок Гутенберга:

(function(blocks, components, element) {
  var el = element.createElement;
  var registerBlockType = blocks.registerBlockType;
  var TextControl = components.TextControl;

  registerBlockType("blocks/test-block", {
    title: "Test Block",
    description: "A custom block.",
    icon: "businessman",
    category: "common",
    attributes: {
      headline: {
        type: "string"
      }
    },

    edit: function(props) {
      var headline = props.attributes.headline;
      var onHeadlineChange = function(val) {
        props.setAttributes({
          headline: val
        });
      };

      return el(TextControl, {
        value: headline,
        label: "Headline",
        onChange: onHeadlineChange
      });
    },
    save: function(props) {
      alert('');
      return el(
        "h3",
        {
          className: "headline"
        },
        props.attributes.headline
      );
    }
  });
})(window.wp.blocks, window.wp.components, window.wp.element);

Я хочу запустить функцию, когда блок загружен во внешний интерфейс.

Я пробовал в функции save, но она работать только тогда, когда блок сохранен на wp-dashboard.

Есть ли способ запустить функцию, когда блок загружен?

1 Ответ

2 голосов
/ 04 апреля 2020

Вы можете использовать параметр обратного вызова рендеринга в типе регистра блока внутри вашего файла PHP. как

register_block_type(
    'blocks/test-block', array(
        'editor_script' => 'index-js',
        'render_callback' => 'recent_posts_block'
    )
);

function recent_posts_block($attributes){
//your code here
}
...