如何解决Wordpress 古腾堡编辑器插件获取类别
我没有任何开发 wordpress 插件的经验,我想在古腾堡编辑器中创建一个滑块插件,该插件应根据所选类别显示博客文章。因此,我必须在提供所有类别列表的古腾堡编辑器中创建一个选择框或类似的东西。我尝试了多种想法来完成这项工作,但不幸的是我失败了。我认为我的问题是 apiFetch 函数的异步请求。 例如,我尝试了以下操作:
const getPosts = function ()
{
console.log('sadsadsadsad'); //todo remove debug
let options = [];
return wp.apiFetch( { path: '/wp/v2/posts' } ).then( function( posts ){
for (let i = 0; i < posts.length; i++) {
option = el(
'option',{ value: posts[i].id },posts[i].title.raw
);
options.push(option);
}
return options;
})
}
内部
编辑:(道具)=> {
return [
el(
SelectControl,{
options: getPosts(),}
)
]
由于异步加载,这无法工作。当我用谷歌搜索另一个解决方案时,我想出了以下代码片段:
function cheat() {
this.cheat = this;
this.types = [];
let that = this;
this.get_posts = function () {
return new Promise(
function ( resolve ) {
wp.apiFetch( { path : '/wp/v2/types' } ).then(
function ( types ) {
that.types = types;
},wp.apiFetch( { path: '/wp/v2/posts' } ).then(
function ( res ) {
resolve( res )
}
)
)
}
)
};
this.post_selector_opts = function () {
let cheat = this.cheat;
return new Promise(
function ( resolve ) {
cheat.get_posts()
.then(
function ( posts ) {
let opts = [{ key: 'none',label: 'Select Post',value: 0 }];
for ( const P of posts ) {
opts.push( { key: P.slug,label: P.title,value: P.id } );
}
resolve( opts );
}
)
}
)
};
this.init = function () {
this.post_selector_opts().then( opts => {
cheater.posts = opts;
} )
}
}
const cheater = { posts: [] };
let shared = new cheat();
shared.init();
内部
编辑:(道具)=> {
return [
el(
SelectControl,{
options: cheater.posts,}
)
]
因此我收到错误
错误:缩小反应错误 #31;访问 https://reactjs.org/docs/error-decoder.html?invariant=31&args[]=object%20with%20keys%20%7Brendered%7D&args[]= 获取完整消息,或使用非缩小开发环境获取完整错误和其他有用警告。
但是如果我尝试使用
构建开发版本npm run build --dev --configuration=dev
它仍然生成一个缩小的生产版本。 你能帮我编码一个包含我的类别的选择框吗?你有什么建议吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。