14 mins read2022/07/17

WordPress 專案目錄結構解析 – ./wp-config.php


wp-config.php 是什麼?

前情提要: WordPress 專案目錄結構解析

我們上篇提到 wp-config.php 的摘要是

WordPress 的設置文件,可以配置許多重要的資訊,例如資料庫名稱、資料庫用戶 & 密碼,還有許多有用的常數,例如 WP_DEBUG 偵錯模式就是在這邊打開

 

看源碼解析前,先聊一點 php

裡面因為有用到 php 的函式 define ,所以這邊我們還是要稍微簡單理解 define 是什麼,這邊我們參考 W3Cschools 的解釋

 

define 的用法

用途 定義一個常數,常數被定義後,是不可以變更的 ( 變數才是可以變更的 )
語法 define( name, value, case_insensitive )

 

define 傳入的參數

name 必填 常數的名稱
value 必填 常數的值
case_insensitive 大小寫不敏感

true – 不敏感

false – 敏感

 

define 範例

其實大家也可以去 W3Cschools 自己玩玩看

這是 php 最簡單的函式之一

define( 'DB_NAME', 'test_db' );

意思就是,定義了一個叫做 DB_NAME 常數,而這個常數的值是 test_db

 

關於單引號 ' 和 雙引號 "

不常打代碼的朋友們可能第一次看到,對於 單引號 ' 或 雙引號 " 會有疑問,什麼時候該打或不打

其實,被單引號 ' 或 雙引號 " 包起來的內容都是 字串 ( String ) 這是程式語言常用的資料結構

通常在使用字串的時候會用到 單引號 ' 或 雙引號 " (廢話😂)

因為在 php 內,如果你沒打 單引號 ' 或 雙引號 "php 會認為你想打 變數 ( variable )函數 ( function )

 

php 裡面的註解

  1. 單行註解 – // 後面接的文字都是註解
  2. 多行註解 – 被/* 還有 */ 包住的內容

註解就是說明用途,不會執行

 

wp-config.php 源碼解析

⭐ 是比較常用到的,需要留意

如果真的記不起來,那看有 ⭐ 的就好 😂


<?php


// ⭐資料庫名稱,如果你的資料庫名稱叫做 'test_db',這邊就是這樣打
define( 'DB_NAME', 'test_db' );

// ⭐資料庫用戶名稱,如果你的資料庫用戶名稱叫做 'root',這邊就是這樣打
define( 'DB_USER', 'root' );

// ⭐資料庫用戶密碼,如果你的資料庫用戶密碼叫做 '1234',這邊就是這樣打
define( 'DB_PASSWORD', '1234' );

// 這邊通常是 'localhost' ,代表資料庫與你的網頁是同一台伺服器
// 如果你使用遠端資料庫,這邊可以打 ip 地址或者 End Point Url
define( 'DB_HOST', 'localhost' );

// 這邊是定義資料庫編碼
define( 'DB_CHARSET', 'utf8' );

// 跟資料庫字符集排序相關,這邊不用動它
define( 'DB_COLLATE', '' );

/* 
 * 下面這一堆是 認證 (auth) 與 加鹽 (salt) 的設定
 * 你可以在 https://api.wordpress.org/secret-key/1.1/salt/ 生成唯一的 認證 (auth) 與 加鹽 (salt)
 * 關於 認證 (auth) 與 加鹽 (salt) 可以參考這篇 
 */
define( 'AUTH_KEY',          'jB]xPb!v85C~g5O%;@:NrR;7cu%$<W3h;m5,WK:ICd=e~*mo(}pk>Thu)1>#3zA$' );
define( 'SECURE_AUTH_KEY',   'YVVP1rmg,F)$q>z~ip&X0|4:MWXh4#9gk-&Ur@ue[aD4JFoE^G-*S8VZD,E,iiN;' );
define( 'LOGGED_IN_KEY',     'Wxp8wVU<~VF+X(^ D2YW1fN;{73W[UumIxr/(4X3ny1tzo.,,qp=vGLf.<K1Vm<!' );
define( 'NONCE_KEY',         '.%usS%+XiC^/JEuiWFOh12Iih:K#|N+o!BQJ;8oXA!(c%<z7?&hje17zt|ub.nD4' );
define( 'AUTH_SALT',         '[*6,N$qbvK|:c| =YLxRU>qA=X9bU;%U;x5nq/{&KokZC-|w| KAZ>hLd5fg`+.J' );
define( 'SECURE_AUTH_SALT',  '2Y~oQ2[sjd1n@0F}yJ;x)=M{N(EE~ ZbA-J]Xb!!vKI1JWR} Ro*S,Jv988-]  +' );
define( 'LOGGED_IN_SALT',    '.dNo/,~i|6Lh!oWpILc8UA[D979`NULxJbDQ;)]l<MAQyR57MY:b7Vx,:%_jcojS' ); 
define( 'NONCE_SALT', 'EXSqXZ6RN_?8b>Z$lN.!L#vM$i7vZFXg-}Un%lNT^%k_!X7WO&Amr=@Y3eRE*ape' );
define( 'WP_CACHE_KEY_SALT', 'sGy6|xsFZ,%%@>c#EgttUsN8):P>qI%uRH*MFHA@==E}W5]D~$|]cbv|tv&@N#YE' );

// 資料表前缀字,預設是 wp_ ,如果在一開始安裝時有修改,就會不同
// 有時候因為安全性考量,會把 wp_ 改掉,讓駭客不容易猜中
$table_prefix = 'wp_';

/*
 * ⭐開啟 Debug 模式,預設為 false
 * 打開後如果 php 有代碼警告,會顯示在前台
 * 如果是重大錯誤也會告訴你錯在哪個檔案
 * true - 開啟
 * false - 關閉
 */
define('WP_DEBUG', false);

// 從這邊開始,你可以添加一些其他的常數,WordPress 預設的常數可以參考這篇
define('WP_DEBUG_LOG', true); // 產生 debug log 檔
define('FORCE_SSL_ADMIN', true); // 強制後台 HTTPS
define('WP_CACHE', true); // 啟用 WordPress 物件快取
define('WP_POST_REVISIONS', 2); // 限制版本修訂的數量
define('FS_METHOD', 'direct'); // 設定檔案傳輸方式
define('WP_MEMORY_LIMIT', '1024M'); // WordPress 記憶體限制

// 而我身為一個開發者,也會經常寫一些功能,並且透過定義常數的方式來啟用/關閉功能

// 下面就是路徑常數定義以及引入檔案,就不多做說明
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}

require_once ABSPATH . 'wp-settings.php';

 

 

覺得不錯的話,請給我點個推薦

您的支持與鼓勵是我們前進的最大動力!