首頁 >後端開發 >php教程 >在 WordPress 安裝期間啟用外掛和主題

在 WordPress 安裝期間啟用外掛和主題

王林
王林原創
2023-08-30 18:21:081357瀏覽

重写后的标题为:Activating Plugins & Themes during WordPress Installation

在本系列的前一部分中,我們了解如何將WordPress 安裝與外掛程式和主題捆綁在一起,以及如何調整wp-config-sample.php 文件。

當然,捆綁主題和插件並不是一個令人驚奇的想法,但您必須承認編輯wp-config-sample.php 以使用自訂wp-config.php 調整來安裝WordPress 有點酷。另外,這兩個技巧與我們將在本教程中看到的神奇技巧結合使用,並完成一種非常有用的方法,為您的未來專案使用開箱即用的 WordPress 安裝。

在這一部分中,我們將發現一個令人興奮的發現,即在安裝 WordPress 時啟動捆綁的主題和外掛程式。您將首先在 Tuts+ 上看到這一點,因為直到今天它才在互聯網上的任何地方公開。

興奮起來。

我見過的最方便的 WordPress 常數之一:WP_DEFAULT_THEME

#

大約一年前,我在Tuts+ 上分享了一個關於使用wp-config-sample.php 檔案來自訂產生的wp-config.php 檔案之前的一個小發現安裝WordPress。這是一個名為 WP_DEFAULT_THEME 的已知 wp-config.php 常數的範例 - 如果您有興趣,可以在此處閱讀這篇文章。

如果你從預設的WordPress套件中刪除了所有預設的「Twenty-Something」主題,WordPress在安裝後會給你一個錯誤而不是前端,因為每個WordPress版本都帶有一個「預設主題」並且它如果預設主題不存在,則不會在wp-content/themes 資料夾中尋找另一個主題。

這就是為什麼在寫完那篇文章後,我認為我可以在另一個教學課程中使用這個調整,稱為「建立開箱即用的 WordPress 套件」。我只是記下了標題,並不想創建大綱,並將註釋留在我的電腦中幾乎一年。 (談論拖延......我應該寫一篇關於它的文章。我應該記下來。)

十多個月後,我決定建立一個大綱並提交到 Tuts+ Code 的專案管理系統,並得到我們的編輯 Tom McFarlin 的批准。當他批准了大綱並且我開始編寫我最初想到的單部分教程時,我開始考慮 WP_DEFAULT_THEME

雖然花了兩天時間思考WordPress 常數有點不尋常,但我最終想到可以使用這個常數以及在安裝WordPress 之前編輯wp-config-sample.php 的技巧來執行一些操作我通常使用「入門外掛」執行的任務(例如刪除預設貼文和頁面、更改永久連結結構和停用評論)。然後我意識到我可以啟動一些預先與軟體包捆綁在一起的插件。然後我意識到我可以在完成這種主題後將主題切換到真實主題

然後我突然想到:所有這一切意味著我實際上可以在安裝 WordPress 時自動啟動預先捆綁的外掛程式和主題!您可能可以從您現在閱讀的文字中感受到我的興奮 - 想像一下當我做出這一發現時我的感受。

這是一個解決方法嗎?絕對地。您甚至可以將其稱為 WordPress「駭客」。但它不會編輯任何核心檔案(除了wp-config-sample.php ,我們可以編輯它),除了「功能代碼是外掛領域」之外,它不違反任何WordPress 約定,但我相信使用一個在一秒鐘內自行停用的「一次性主題」並不是「不合規矩」。最後,它不會破壞任何檔案或規則,而且它是開箱即用的 WordPress 安裝的完全安全的解決方案。

製作「熱身樂團」主題

現在我們已經了解了要做的事情的邏輯,是時候創建一次性「熱身帶」主題了。

在此主題中,只有兩個文件:強制的 style.cssfunctions.php 文件,該文件將運行我們的四部分程式碼:

  1. 更改預設選項
  2. 刪除預設內容
  3. 啟動我們預先捆綁的外掛程式
  4. 切換到「Headliner」主題

我把 style.css 檔案內容放在下面供您複製:

/*
Theme Name: Warm-Up Band
Author: Baris Unver from Tuts+ Code
Description: Disposable theme to run some errands.
Version: 0
*/

更改預設選項

WordPress 不允許您更改預設選項,因為如果您這樣做的話,安裝時間會更長。但這並不意味著您不能以程式設計方式更改它們。透過一些核心功能,可以輕鬆根據您的需求自訂選項:

<?php

// set the options to change
$option = array(
	// we don't want no description
	'blogdescription'				=> '',
	// change category base
	'category_base'					=> '/cat',
	// change tag base
	'tag_base'						=> '/label',
	// disable comments
	'default_comment_status'		=> 'closed',
	// disable trackbacks
	'use_trackback'					=> '',	
	// disable pingbacks
	'default_ping_status'			=> 'closed',
	// disable pinging
	'default_pingback_flag'			=> '',
	// change the permalink structure
	'permalink_structure'			=> '/%postname%/',
	// dont use year/month folders for uploads 
	'uploads_use_yearmonth_folders'	=> '',
	// don't use those ugly smilies
	'use_smilies'					=> ''
);

// change the options!
foreach ( $option as $key => $value ) {	
	update_option( $key, $value );
}

// flush rewrite rules because we changed the permalink structure
global $wp_rewrite;
$wp_rewrite->flush_rules();

?>

如您所見,我們:

  • 首先创建一个选项及其值的关联数组
  • foreach 循环中运行数组,以便对每个数组项使用 update_option() 函数
  • 刷新了重写规则,因为我们更改了永久链接结构

您可以使用很多很多默认选项 - 在 wp-admin/includes/schema.php 文件中查看它们。

删除默认内容

现在我们已经更改了一些默认选项,是时候删除我们总是手动删除的不需要的内容了。这个更容易:

<?php

// delete the default comment, post and page
wp_delete_comment( 1 );
wp_delete_post( 1, TRUE );
wp_delete_post( 2, TRUE );

?>

激活捆绑插件

还记得我们在上一部分中决定将我们的包与三个流行的插件捆绑在一起吗?我们选择了 WP Super Cache、Yoast 的 WordPress SEO 和 Contact Form 7。现在让我们激活它们:

<?php

// we need to include the file below because the activate_plugin() function isn't normally defined in the front-end
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// activate pre-bundled plugins
activate_plugin( 'wp-super-cache/wp-cache.php' );
activate_plugin( 'wordpress-seo/wp-seo.php' );
activate_plugin( 'contact-form-7/wp-contact-form-7.php' );

?>

我们还可以停用默认的 AkismetHello Dolly 插件,但我相信您已经像我一样从包中删除了它们。

切换到“头条新闻”主题

一切都已设置,现在我们可以切换到我们要使用的实际主题!这是最简单的部分,因为我们将运行 switch_theme() 函数,并将主题的文件夹名称作为参数:

<?php

// switch the theme to "Headliner"
switch_theme( 'headliner' );

?>

简单易行!

完整的 functions.php 文件

<?php

// set the options to change
$option = array(
	// we don't want no description
	'blogdescription'				=> '',
	// change category base
	'category_base'					=> '/cat',
	// change tag base
	'tag_base'						=> '/label',
	// disable comments
	'default_comment_status'		=> 'closed',
	// disable trackbacks
	'use_trackback'					=> '',
	// disable pingbacks
	'default_ping_status'			=> 'closed',
	// disable pinging
	'default_pingback_flag'			=> '',
	// change the permalink structure
	'permalink_structure'			=> '/%postname%/',
	// dont use year/month folders for uploads 
	'uploads_use_yearmonth_folders'	=> '',
	// don't use those ugly smilies
	'use_smilies'					=> ''
);

// change the options!
foreach ( $option as $key => $value ) {	
	update_option( $key, $value );
}

// flush rewrite rules because we changed the permalink structure
global $wp_rewrite;
$wp_rewrite->flush_rules();

// delete the default comment, post and page
wp_delete_comment( 1 );
wp_delete_post( 1, TRUE );
wp_delete_post( 2, TRUE );

// we need to include the file below because the activate_plugin() function isn't normally defined in the front-end
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// activate pre-bundled plugins
activate_plugin( 'wp-super-cache/wp-cache.php' );
activate_plugin( 'wordpress-seo/wp-seo.php' );
activate_plugin( 'contact-form-7/wp-contact-form-7.php' );

// switch the theme to "Headliner"
switch_theme( 'headliner' );

?>

结束

虽然 WordPress 以其“五分钟安装过程”而闻名,但我相信,如果您知道自己在做什么,还可以节省几分钟。通过我们在本系列中介绍的内容,您可能会在 WordPress 安装过程之前和过程中获得更多时间。

您对创建自动化 WordPress 安装有何看法?您认为该系列还有更多改进的空间吗?请在下面的评论部分写下您的想法,告诉我们您的想法。如果您喜欢该系列,请不要忘记分享这两个部分!

以上是在 WordPress 安裝期間啟用外掛和主題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn