Gutenberg动态块RENDER_CALLBACK为$POST提供NULL

时间:2021-07-04 作者:Amir 2mi

我正在尝试在中获取当前的帖子IDrender_callback 生成相关帖子的功能。但是global $post 对象提供空值。

我使用以下代码作为示例here:

add_action( \'init\', function() {
    register_block_type(\'fc/related-posts\', array(
        \'render_callback\' => function() {
            global $post;
            var_dump($post); // null
        }
    ));
});

它将被点燃init 但只是$wp 对象可以像其他对象一样工作$wp_query$post 为空。

1 个回复
SO网友:Phil

我最近也有同样的问题。我使用的解决方法是将当前帖子id保存为块的属性:

const currentPostId = useSelect( ( select ) => {
    return select( \'core/editor\' ).getCurrentPostId();
}, [] );

useEffect( () => {
    if ( currentPostId && currentPostId !== postId ) {
        setAttributes( { postId: currentPostId } );
    }
}, [ currentPostId ] );

相关推荐

Image editor is not loading

出于某种奇怪的原因,嵌入图像编辑器未加载<我已经在wp配置中启用了调试。php我已经100%禁用了插件并设置了默认主题,Javascript控制台或Apache2错误日志中都没有错误,安装了php gd,安装了imagemagick,安装了php curl,我可以丢弃服务器中缺少的模块,因为我在同一服务器中安装了另一个WP,并且图像编辑器工作正常我没有主意了,不确定是什么导致了这个问题:(