如何创建自定义WordPress安装包?

时间:2012-12-29 作者:user1822824

我下载了最新版本的WordPress(3.5)并创建了一个自定义主题。我计划为多个客户端上传并安装它。是否可以自定义默认设置,例如安装时不添加示例帖子、页面和注释?并设置激活的默认主题?

我查看了升级。php和模式。php,看起来这就是添加示例帖子、页面和评论的地方,但我找不到选择默认主题的地方。是否有关于如何编辑这些文件的文章或关于如何操作的提示?

4 个回复
SO网友:brasofilo

我回答了一个similar Question. 基本上:

创建Dropin 的根插件wp-content 已命名install.php

内部install.php, 创建可插入函数的新版本wp_install_defaults()

删除所有不需要的默认设置并随意定制,如:

  • update_option(\'template\', \'your-theme\');

  • update_option(\'stylesheet\', \'your-theme\');

  • update_option(\'current_theme\', \'Your Theme\');

  • update_option(\'my_theme_options\', $theme_options_array );

  • auto-activate 一些捆绑插件

    将所有内容打包成一个包(WordPress文件和内容文件:主题、插件、,install.php)

    现在,无论何时运行安装,都会处理该下载,新站点将使用您的预配置启动

    我在开发环境中做了更多的测试,并更新了Gist 从另一个答案开始install.php.
    现在它包含函数wpse_4041_run_activate_plugin($plugin)(激活捆绑插件)和空的wp_new_blog_notification()(这是另一个可插拔的,可防止WP发送有关站点安装的通知电子邮件)。

    我使用了主题F8 Lite 用于测试。大多数代码都是对原始脚本(默认页面、帖子、评论、类别、Blogroll)的改编。最后是我的自定义命令(更改主题、设置主题选项、激活插件、设置插件选项)。

    检查文件上的注释。

    不确定这是否是最好的方法,但在主题内functions.php 文件我把这个脚本delete 文件wp-content/install.php. 它将只运行一次(基于this Answer 在安装WP之后。

    // If the option doesn\'t exist and the install script is there, delete it
    if ( wpse_25643_run_once( \'my_custom_install_2013\' ) )
    {
        if( file_exists( WP_CONTENT_DIR.\'/install.php\' ) ) 
        {
            unlink( WP_CONTENT_DIR.\'/install.php\' );
        }
    }
    
    /**
     * Check if option exist
     *
     * @param string $key
     * @return boolean
     **/
    function wpse_25643_run_once( $key )
    {
        $test_case = get_option( \'run_once\' );
    
        if ( isset( $test_case[$key] ) && $test_case[$key] )
        {
            return false;
        }
        else
        {
            $test_case[$key] = true;
            update_option( \'run_once\', $test_case );
            return true;
        }
    }
    
    相关问答;使用另一种不使用install.php:
    Initialization Script for "Standard" Aspects of a WordPress Website?

SO网友:Wyck

我正在使用Phing编写一个Php构建脚本,该脚本将安装WP以及一些默认设置(主题/插件和自定义代码),这项工作仍在进行中。

https://github.com/wycks/WordPhing/

在…内build.xml 您将看到一些php选项,如以下在安装期间运行的选项:

     //remove Hello Dolly 
      delete_plugins(array(\'hello.php\'));

    //remove default hello world post
      wp_delete_post(1,true);

    //remove default sample page
      wp_delete_post(2,true);

    //remove default Mr.Wordpress comment
      wp_delete_comment( 1, true ) ;
另外,我还没有在最新版本或linux上进行测试。

SO网友:cehwitham

根据需要安装,然后使用http://infinitewp.com/ 将安装复制到其他网站的其他位置。这是我们为所有项目的基本安装所做的。

或者,不要为每个站点使用新的WordPress,而是备份现有的WP安装并将其导入新的托管帐户。然后使用FTP复制所有文件,更新wp config中的数据库设置。php的新数据库,您将一切就绪。比InfiniteWP更复杂一些,但这意味着你不必为插件付费。

SO网友:marikamitsos

您需要做的是打开wp includes/default常量。php并将以下行(您将在文档末尾找到)更改为主题的文件夹名称:

if ( !defined(\'WP_DEFAULT_THEME\') )
        define( \'WP_DEFAULT_THEME\', \'twentytwelve\' );
另一方面,你可以随时尝试Duplicator. 一个非常好的插件,可以为您提供大量额外功能。

结束

相关推荐

将check_admin_referer与主题选项和options.php一起使用

如果我按照法典建议的方式设置主题选项页面(http://codex.wordpress.org/Creating_Options_Pages)然后我的表单提交到“选项”。php’。settings_fields 创建一个nonce,如果我正在创建自己的提交页面,将使用该nonce进行检查check_admin_referer.那么我的问题是。。。。如果我使用选项。php作为我的“表单处理器”,这是否意味着我不能使用check_admin_referer?谢谢Nick