如何在“外观>编辑器”中分配默认文件?

时间:2011-07-06 作者:N2Mystic

我的主题有一个自定义。css文件,我使用它允许设计师根据自己的喜好自定义它。

但是,当单击“外观>编辑器”时,样式。默认情况下,css文件加载在那里。

由于我不希望在此文件上进行自定义编辑,因此我希望通过放置自定义来尽量减少有人编辑它的机会。而不是css。

这可能吗?也许是使用闪亮的新3.2代码库?

3 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

很遗憾,您无法控制该页面上加载的文件。。。

但您可以禁用编辑器页面,并为用户提供主题选项,允许用户包含自己的CSS。

为了解决这个问题,如果可能的话,我会自动创建并激活一个子主题:

if(!is_child_theme()){

  require_once(ABSPATH.\'wp-admin/includes/file.php\');
  if(!WP_Filesystem()){
    // fail, proably no write-access, use the parent theme...
  }else{

    $parent = get_theme_data(TEMPLATEPATH.\'/style.css\');
    $name = get_stylesheet().\'-extend\';
    $destination = trailingslashit($GLOBALS[\'wp_filesystem\']->wp_themes_dir()).$name;

    $style = "/*\\n"
            ."Theme Name: {$parent[\'Name\']} - Extend\\n"
            ."Theme URI: {$parent[\'URI\']}\\n"
            ."Description: Automatically generated child theme of {$parent[\'Name\']}. Please leave this one activated for proper customizations to {$parent[\'Name\']}.\\n"
            ."Version: 1.0\\n"
            ."Author: {$parent[\'Author\']}\\n"
            ."Author URI: {$parent[\'AuthorURI\']}\\n"
            ."Template: ".get_template()."\\n"
            ."*/\\n\\n"
            ."/* You can safely edit this file, but keep the Template tag above unchanged! */\\n";

    if(!$GLOBALS[\'wp_filesystem\']->is_dir($destination))
      if($GLOBALS[\'wp_filesystem\']->mkdir($destination, FS_CHMOD_DIR) && $GLOBALS[\'wp_filesystem\']->put_contents($destination.\'/style.css\', $style, FS_CHMOD_FILE)){

        // copy screenshot and license.txt
        $GLOBALS[\'wp_filesystem\']->copy(TEMPLATEPATH.\'/screenshot.png\', $destination.\'/screenshot.png\');
        $GLOBALS[\'wp_filesystem\']->copy(TEMPLATEPATH.\'/license.txt\', $destination.\'/license.txt\');

        switch_theme(get_template(), $name);
        wp_redirect(admin_url("themes.php"));
        die(); // stop execution of the current page
      }else{
        // fail again...
      }
  }
}

SO网友:Chip Bennett

相反,我鼓励您的用户创建子主题。

除其他优点外,如果使用Appearance -> Editor, 子主题的style.css 将是可供编辑的默认文件,而不是您(即父)主题的文件。

SO网友:Jared Cobb

在浏览了一段代码后,我觉得WordPress没有提供API挂钩来干净地更改该页面上加载的默认文件。

或者,您可以(从主题的functons.php或插件中)删除某些菜单和子菜单。如果您决定这样做(同时删除外观->编辑器菜单),这些博客文章应该很有用。

结束

相关推荐