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

重写后的标题为: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
可以在PHP會話中存儲哪些數據?可以在PHP會話中存儲哪些數據?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,數字,數組和原始物。

您如何開始PHP會話?您如何開始PHP會話?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

什麼是會話再生,如何提高安全性?什麼是會話再生,如何提高安全性?May 02, 2025 am 12:15 AM

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

使用PHP會話時有哪些性能考慮?使用PHP會話時有哪些性能考慮?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP會話與Cookie有何不同?PHP會話與Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具