在古腾堡区块获取定制帖子

时间:2020-11-18 作者:Imrul.H

我对阻碍发展和反应还很陌生。我正在尝试制作一个显示所选自定义帖子列表的块。我可以创建属性来保存用户偏好,如帖子类型、计数、状态等。现在我想获取帖子。我不确定是否应该使用php端点或WP JSON API来获取帖子?我在5月份的一些地方看到,他们要么使用一些定制的php端点,要么只使用render_callback 调用php函数,该函数负责获取和显示帖子。将REST API与JS结合使用,而不是以良好的旧WP\\U查询方式获取,是否有任何缺点?

import \'./editor.scss\';
import \'./style.scss\';

const { __ } = wp.i18n; // Import __() from wp.i18n
const { registerBlockType } = wp.blocks; // Import registerBlockType() from wp.blocks

registerBlockType( \'cgb/block-myposts\', {
    title: __( \'myposts - CGB Block\' ),
    icon: \'shield\',
    category: \'common\',
    keywords: [
        __( \'myposts — CGB Block\' ),
        __( \'CGB Example\' ),
        __( \'create-guten-block\' ),
    ],

    edit: ( props ) => {
        // I want to fetch posts here and show
    },

    save: ( props ) => {
        return null;
    },
} );

1 个回复
SO网友:Chris Norman

我注意到了一些事情。块的编辑区域仅显示在编辑器中,而不是前端。保存区域是要添加显示在前端的帖子的位置。

就我个人而言,我会使用jQuery/AJAX/和JSON。(因此您将使用Wp JSON API)。

我会这样做:

const {__} =  wp.i18n;

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

    blocks.registerBlockType( \'cgb/block-myposts\', {
    title: __( \'myposts - CGB Block\' ),
    icon: \'shield\',
    category: \'common\',
    keywords: [
        __( \'myposts — CGB Block\' ),
        __( \'CGB Example\' ),
        __( \'create-guten-block\' ),
    ],

    edit: function(props) {
            return (
                el( \'div\', { className: props.className },
                    el(\'div\', {\'class\': \'postarea\'})))},

    save: function(props) {
            return (
                el( \'div\', { className: props.className},
                    el(\'div\', {\'class\': \'postarea\'}
)))} );
}(
    window.wp.blocks,
    window.wp.element
) );
根据您的具体项目需要,可以随意添加。请记住,保存区域是将显示在前端的区域。在此之后,您将使用jQuery检索类:postrea并插入所需的帖子。

根据您想要的用户体验,有几种方法可以解决此问题。