使用Gutenberg时,我希望禁用除管理员以外的所有用户编辑帖子标题,即使我想允许他们编辑帖子,and 我想禁用文章标题上方弹出的permalink编辑器。
我想为一个自定义帖子类型这样做,我们将禁用添加或删除帖子的功能,并在启动网站时预加载该帖子类型的所有帖子。
(该用例适用于公寓单元;一旦公寓大楼建成,几乎不需要添加或删除公寓单元,因此我只希望管理员能够添加或删除公寓单元,并且只有管理员能够编辑公寓单元标题或其URL标记。)
我已经能够以一种非古腾堡/黑客式的常规JavaScripty方式找到如何禁用标题编辑的方法,但仍然无法摆脱permalink。就像僵尸一样,它不断地回来(理想情况下,我会使用Gutenbergy方法来实现这一点,而不是hacky JS方法。)
请参阅下面的代码,它确实禁用了标题编辑,但没有禁用永久链接编辑。我更愿意摆脱这种情况,改用Gutenbergy代码。我只在这里包含它,所以我不会得到建议这种方法的答案。
jQuery(function($){
var title;
function makeTitleReadOnly() {
var textarea = title.find("textarea");
if (textarea.length > 0) {
textarea.attr("readonly",true);
return
}
setTimeout(makeTitleReadOnly,100);
}
function hidePermalink() {
var permalink = title.find(".editor-post-permalink");
if (permalink.length > 0) {
permalink.hide();
return
}
setTimeout(hidePermalink,123);
}
function waitForPostTitle() {
title = $(".editor-post-title");
if (title.length > 0 ) {
makeTitleReadOnly();
hidePermalink();
return;
}
setTimeout(waitForPostTitle,100);
}
waitForPostTitle()
});
理想情况下,我不必为此创建单独的插件(我想将所有代码合并到现有插件中),因此理想情况下,我不想添加
npm
/
webpack
构建过程表示否
JSX
, 理想情况下
create-guten-block
将不作为此问题的答案的一部分。