如何禁用WordPress主题编辑器

qxgroojn  于 2024-01-06  发布在  WordPress
关注(0)|答案(4)|浏览(160)

我知道如何在特定的WordPress站点中禁用插件/主题编辑器。

**我的问题:**是否可以从主题的functions.php文件中禁用编辑器?

这个想法是有这个默认关闭时,我的主题是活跃的;然而,一旦一些警告被接受,编辑器可以通过主题选项页面重新启用。
除此之外,这个问题的主题是相当先进的。这意味着即使有人知道他们在做什么,也可能在没有意识到的情况下把它搞砸。

svmlkihl

svmlkihl1#

尼克,你可以尝试用action调用你的functions.php中的一个函数来禁用编辑器,但WordPress没有提供任何方法来禁用编辑器的主题只.如果你使用DISALLOW_FILE_EDIT比你的插件编辑器也将被禁用.
我觉得你应该尝试下面的方法来禁用编辑器从functions.php的主题。

function disable_mytheme_action() {
      define('DISALLOW_FILE_EDIT', TRUE);
    }
    add_action('init','disable_mytheme_action');

字符串
你也可以定义一些选项和检查在上面的功能和控制相应的禁用文件编辑.

vlju58qv

vlju58qv2#

一位朋友最终为我回答了这个问题,所以对于谷歌人来说:
functions.php中:

if (in_array($GLOBALS['pagenow'], array('theme-editor.php'))) {
    if (get_option('theme_editor') != TRUE) {
        wp_die('<p>'.__('In order to edit this theme, you must first re-enable the theme editor via the <a href="'.theme::options_uri().'">Theme Options</a> page').'</p>');
    }
}

字符串
只要确保你允许人们通过你的主题选项页面重新启用主题编辑器。听起来很傻,有些人真的很喜欢它,想要它。
我最终在重新启用按钮周围添加了一个非常明显的警告,如下所示:JSFiddle

llycmphe

llycmphe3#

我找到的解决方案:
在functions.php或其他主题设置代码中:

add_action('admin_menu', 'edit_menu');

function edit_menu()
{
    global $menu;
    $user = wp_get_current_user();
    if (isset($user->roles) && is_array($user->roles)) {
        // Is the user an admin?
        if (in_array('the_role_you_want_to_change', $user->roles)) {
            foreach ($menu as $key=>$value)
            {
                if ($value[2] == 'themes.php') unset ($menu[$key]);
            }

字符串

c9qzyr3d

c9qzyr3d4#

打开你的wp-text.php文件添加代码

define( 'DISALLOW_FILE_EDIT', true );

字符串
试试这个扩展
https://wordpress.org/plugins/disable-theme-and-plugin-editor/

相关问题