WordPress開發入門04:PHP在檔案中呈現的2種方式
為了在PHP檔案中編寫PHP程式碼,我們必須做一個額外步驟,就是開啟和關閉所謂的PHP塊。
如果你嘗試在PHP程式碼塊之外編寫PHP程式碼,那麼它將顯示為純文字。而不會被解析。
相反地,如果你嘗試在PHP塊中寫入純HTML程式碼,那麼也會導致錯誤。
實際上,在某些檔案中,比如說大多數WordPress核心檔案,所有的程式碼都寫在PHP程式碼塊中。這意味著它是純PHP檔案。
在其他檔案(比如模板檔案)中,通常會有很多小的PHP程式碼塊。這意味著你可能會在同一個檔案中混用HTML和PHP。
這兩種情況在WordPress中都是完全可以接受的。
純PHP檔案
在文字編輯器中開啟wp-config.php檔案:
You must be logged in to view the hidden contents.
我們會看到它只開啟一個PHP程式碼塊,後面是一大堆PHP程式碼:
<?php
/**
* WordPress基礎配置檔案。
*
* 這個檔案被安裝程式用於自動生成wp-config.php配置檔案,
* 您可以不使用網站,您需要手動複製這個檔案,
* 並重新命名為“wp-config.php”,然後填入相關資訊。
*
* 本檔案包含以下配置選項:
*
* * MySQL設定
* * 金鑰
* * 資料庫表名字首
* * ABSPATH
*
* @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
*
* @package WordPress
*/
// ** MySQL 設定 - 具體資訊來自您正在使用的主機 ** //
/** WordPress資料庫的名稱 */
define('DB_NAME', 'localwp');
/** MySQL資料庫使用者名稱 */
define('DB_USER', 'wpuser');
/** MySQL資料庫密碼 */
define('DB_PASSWORD', 'root');
/** MySQL主機 */
define('DB_HOST', 'localhost');
/** 建立資料表時預設的文字編碼 */
define('DB_CHARSET', 'utf8mb4');
/** 資料庫整理型別。如不確定請勿更改 */
define('DB_COLLATE', '');
/**#@+
* 身份認證金鑰與鹽。
*
* 修改為任意獨一無二的字串!
* 或者直接訪問{@link https://api.wordpress.org/secret-key/1.1/salt/
* WordPress.org金鑰生成服務}
* 任何修改都會導致所有cookies失效,所有使用者將必須重新登入。
*
* @since 2.6.0
*/
define('AUTH_KEY', '&=eArwobk:Q0y=a-g*_;lAzr}+/%V(k{tek{[`i+w.+C|[7oWojj)vGWi=g?qbGK');
define('SECURE_AUTH_KEY', 'yH[.PP];y(m3qvfahQ(Cj%g6+~MHlOo%$lM|~,2aNe2p?P{R&{KX0xXAXi,(vMY)');
define('LOGGED_IN_KEY', ' ~Ss_VR,1.C(~izSn80EPjP{0p]h+/>0:ciZl$RKqU!bPdBKAeSHQRn[z>!:.izX');
define('NONCE_KEY', ']*&K cD}Y+WQOr|d_t=D|WU*kMFQz2uJVU?x.G+O!Rwg0a~]#Ko.rLWa[a1}Jzgp');
define('AUTH_SALT', 'S91]z;%G>l[O9hTjVmz0^2py>JN7Yo3u(gbCM?X~=hkr;)@sMQmgX207ft:zEOiW');
define('SECURE_AUTH_SALT', 'J$odH<se--OW0/4V*<`+)sVGZp.x[Q>ylRJ<4@O9b7bmAJr:OO(-dL>e-c)omuUz');
define('LOGGED_IN_SALT', ',+.x@Y.>a<+,Oh6Td~9S+gZy-Vka&KxV{|[,F)4qe1$YIjv)6J}e,_e&$xk3Vi_?');
define('NONCE_SALT', 'gLmrI$%=t)7Uc#$?[ONAOg;!>jg3SvE@m;7Y;VNI[bC#<yUzf;kI!lMuglY+k]?j');
/**#@-*/
/**
* WordPress資料表字首。
*
* 如果您有在同一資料庫內安裝多個WordPress的需求,請為每個WordPress設定
* 不同的資料表字首。字首名只能為數字、字母加下劃線。
*/
$table_prefix = 'wptest_';
/**
* 開發者專用:WordPress除錯模式。
*
* 將這個值改為true,WordPress將顯示所有用於開發的提示。
* 強烈建議外掛開發者在開發環境中啟用WP_DEBUG。
*
* 要獲取其他能用於除錯的資訊,請訪問Codex。
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
/**
* zh_CN本地化設定:啟用ICP備案號顯示
*
* 可在設定→常規中修改。
* 如需禁用,請移除或註釋掉本行。
*/
define('WP_ZH_CN_ICP_NUM', true);
/* 好了!請不要再繼續編輯。請儲存本檔案。使用愉快! */
/** WordPress目錄的絕對路徑。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** 設定WordPress變數和包含檔案。 */
require_once(ABSPATH . 'wp-settings.php');
/***它不會關閉PHP塊***/
但是,它不會關閉PHP塊。那麼這裡為什麼沒有關閉程式碼塊呢?這是WordPress中的一個有趣的地方。
從技術上講,我們可以關閉它,也有人說應該關閉這個PHP塊。
WordPress官方原始碼沒有關閉它,有這樣的2個原因。
- 執行WordPress的伺服器將會為我們自動關閉程式碼塊
- 在關閉PHP塊的後面如果有額外的空格,可能會導致問題。
因此,WordPress中很多純PHP檔案是沒有關閉程式碼塊。
但是,當你編寫自己的檔案時,你需要關閉PHP塊。
混用HTML和PHP檔案
現在,來看看一個包含相當多的HTML的檔案,其中只有一點點的PHP程式碼。
我們開啟 twentyfifteen 預設主題標頭檔案:
可以看到,在這個header.php的頂部,在開頭,就是PHP程式碼塊,裡面有一段註釋,接著是大量的HTML程式碼:
<?php
/**
* The template for displaying the header
*
* Displays all of the head element and everything up until the "site-content" div.
*
* @package WordPress
* @subpackage Twenty_Fifteen
* @since Twenty Fifteen 1.0
*/
?>/***以上部分是PHP程式碼塊***/
<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<!--[if lt IE 9]>
<script src="<?php echo esc_url( get_template_directory_uri() ); ?>/js/html5.js"></script>
<![endif]-->
<?php wp_head(); ?>
</head>/***以上部分是HTML程式碼***/
所以,這是PHP程式碼在檔案中呈現的2種方式。
相關文章
- WordPress開發入門03:編輯PHP檔案的2個方式PHP
- WordPress開發入門02:WordPress中不同目錄型別的PHP檔案型別PHP
- php讀取檔案的幾種方式PHP
- WordPress開發入門01:Windows本地安裝WordPress和PHP除錯環境WindowsPHP除錯
- WordPress入門04-如何管理已安裝的WordPress外掛
- WordPress開發入門09:WordPress編碼標準
- WordPress開發入門05:模板標籤
- WordPress入門02-安裝WordPress外掛的幾種方法
- WordPress開發入門08:自定義函式和WordPress鉤子函式
- PHP 獲取檔案 副檔名 的常用方法小結【五種方式】PHP
- oracle匯入dmp檔案的2種方法Oracle
- 前端開發入門到實戰:六種組織CSS的方式前端CSS
- Java中建立並寫檔案的5種方式Java
- 在 NetBeans 中打包 Maven 專案的兩種方式BeanMaven
- Spring Boot 入門系列(二十五)讀取配置檔案的幾種方式詳解!Spring Boot
- 三種引入javascript檔案的方式JavaScript
- 檔案上傳的幾種方式
- Java專案開發中實現分頁的三種方式一篇包會Java
- PHP寫入檔案PHP
- PHP:檔案載入PHP
- 前端開發入門到實戰:css實現div垂直水平居中的2種常用方法前端CSS
- 04小白學nodejs 檔案寫入NodeJS
- 在Linux中修改開啟檔案數量限制的3種方法Linux
- 總結java中建立並寫檔案的5種方式Java
- JavaScript~檔案下載的幾種方式JavaScript
- vue引用js檔案的多種方式VueJS
- Java多種寫檔案方式Java
- PHP 檔案操作的各種姿勢PHP
- WordPress開發入門06:條件判斷與迴圈
- WordPress開發入門07:WP_Query 自定義迴圈
- Mybatis配置檔案中Select元素標籤輸入引數有多少種輸入方式呢?MyBatis
- shell-----資料呈現方式
- JavaScript 檔案載入方式JavaScript
- uniCloud雲開發入門以及對傳統開發方式的思考Cloud
- Spring Boot開啟的2種方式Spring Boot
- 在.net中讀寫config檔案的各種方法
- 在遊戲陪玩原始碼開發中,兩種清空陣列的方式遊戲原始碼陣列
- 利用xlrd模組在Django專案中實現Excel檔案匯入DjangoExcel