WordPress PHP 指南
已發表: 2020-10-16想了解 WordPress PHP? 在這篇文章中,我們將解開 PHP 是什麼以及它如何與 WordPress 配合使用。 了解 PHP 以及它如何與 WordPress 集成將有助於站點維護、故障排除和 WordPress 開發。
什麼是 PHP?
PHP 是 Hypertext Preprocessor 的縮寫,是大約 79% 的 Web 使用的腳本語言。 PHP 允許您做許多強大的事情,例如與數據庫交互、編寫條件語句、獲取特定於 WordPress 的信息、提取媒體文件等等。
WordPress PHP
PHP 是 WordPress 的動力,因為大多數 WordPress 核心文件都是用這種語言編寫的。 如果您查看 WordPress 網站的文件列表,您會看到大多數文件以 .php 結尾,這意味著該文件是 PHP 文件。 下面屏幕截圖中列出的大多數 WordPress PHP 文件都是 WordPress 網站運行所必需的。
PHP 的工作原理:WordPress 網站
讓我們看一個在 WordPress 網站上如何使用 PHP 的真實示例。 在此示例中,我們將使用條件語句來確定用戶是否已登錄:
<?php if ( true === user_is_logged_in() ) { echo 'You are logged in!'; } else { echo 'You are not logged in! Please sign in.'; }
即使您不了解 PHP,您也可以知道用戶已登錄或未登錄。我們使用條件 (if/else) 來檢查用戶是否已登錄,如果是,則我們將顯示一條消息歡迎他們,如果他們沒有登錄,我們將要求他們登錄。雖然這只是一個基本示例,但您可以看到條件的強大程度。
您可以看到我們檢查了函數“user_is_logged_in”。 我們知道這是一個函數,因為它的名稱後面有括號“()”。
如果該函數返回 false,則當代碼運行時,它將顯示消息:
“你沒有登錄! 請登錄。”
PHP 和 WordPress
僅從上面的示例中,您會注意到 PHP 在 WordPress 中隨處可見。 WordPress 有子系統,比如控制顯示帖子數量的循環,以及修改功能、API、主題和插件的鉤子。
WordPress PHP:啟用調試
默認情況下,WordPress 不會顯示由 PHP 生成的任何錯誤/警告。 對於生產中的站點,這是一個很好的做法,但如果您正在開發,那麼您希望啟用此功能。 要啟用調試,只需更改 wp-config.php 文件中的這一行,該文件位於 WordPress 的根目錄中:
define( 'WP_DEBUG', false );
只需將常量 WP_DEBUG 更改為true ,然後保存文件。 現在將顯示隱藏的任何錯誤或警告,這正是我們想要的。
循環和查詢
查詢是一個收集要在頁面上顯示的帖子的系統,循環是遍歷每個帖子並相應地顯示它們的系統。 在您的主頁上,查詢將查找最新的帖子並獲取最新的 10 個帖子。 在類別頁面上,查詢將查找給定類別的 10 個最新帖子。 您還可以修改查詢並將其用於您需要完成的工作。
讓我們看一個例子:
<?php if ( have_posts() ) { $i = 0; while ( have_posts() ) { $i++; if ( $i > 1 ) { echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />'; } the_post(); get_template_part( 'template-parts/content', get_post_type() ); } } elseif ( is_search() ) { ?> <div class="no-search-results-form section-inner thin"> <?php get_search_form( array( 'label' => __( 'search again', 'twentytwenty' ) ); ?>
代碼首先檢查函數“have_posts()”是否有任何要循環的數據。 如果是,則將變量$i 設置為 0。然後運行一個while循環,只要條件為真(即有數據要返回),該循環就會運行。 它首先將變量$i增加 1“$i++;”,然後它運行一個條件語句檢查變量 $i 是否大於 1。如果是,它會顯示一些 HTML 來分隔帖子。 之後,使用函數“the_posts()”獲取帖子並使用函數“get_template_part()”顯示帖子的內容。

如果不滿足這個條件,那麼它使用“is_search”函數來確定它是否是一個搜索。 如果是,那麼它只是渲染一些 HTML 並運行“get_search_form()”函數,要求用戶再次搜索。
掛鉤
WordPress 為開發人員提供了修改核心功能的機會。 但是,你不希望修改核心文件。 這是開發的第 1 條規則,這是一種糟糕的做法。 根據您正在處理的項目,有時可能會很困難,但這就是鉤子發揮作用的地方。 WordPress 是關於鉤子的,它有兩個用於開發的主要鉤子。 這兩個鉤子是動作鉤子和過濾器鉤子。 Action hooks 允許您添加自定義代碼,而 filter hooks 允許您在使用之前修改數據。
讓我們自定義wp_footer 以在主題的結束正文標記之前添加我們自己的代碼。 如果您打開主題的functions.php,您可以添加以下代碼:
function ithemes_footer_code() { ?> <p>This is the footer.</p> <?php } add_action( 'wp_footer', 'ithemes_footer_code' ); // ---- END // ---- BEGIN if ( ! function_exists( 'ithemes_custom_length_excerpt' ) ) { function ithemes_custom_length_excerpt( $length ) { return 50; } } add_filter( 'excerpt_length', 'ithemes_custom_length_excerpt', 999 );
這段代碼創建了一個函數“ithemes_footer_code”,用作“add_action()”函數的回調函數。 這個函數包含我們想要在 wp_footer 上執行的代碼。 對於 add_action 的第一個參數,我們調用 'wp_footer' 表示此代碼將在頁腳上運行。 第二個參數是回調函數(我們剛剛製作的函數),它將運行自定義代碼。 這是一個動作鉤子的例子。
讓我們修改帖子摘錄的自定義長度。 默認情況下,WordPress 將顯示 57 個字符,但我們可以將字符數修改為更多或更少:
if ( ! function_exists( 'ithemes_custom_length_excerpt' ) ) { function ithemes_custom_length_excerpt( $length ) { return 50; } } add_filter( 'excerpt_length', 'ithemes_custom_length_excerpt', 999 );
我們首先通過為“function_exists()”函數編寫條件來檢查我們正在創建的函數是否已經存在。 如果它不存在,那麼我們創建我們的函數並以$length作為參數。 然後我們返回 50 的值。之後,我們運行“add_filter()”函數,該函數可以保存 4 個參數,但我們只使用了三個。 這是過濾器鉤子的一個例子。
總結:WordPress PHP
如您所見,只需學習 WordPress PHP 的基礎知識以及 PHP 如何實現到 WordPress 代碼庫中,您就可以更好地了解您的網站實際上是如何在後台運行的。 在此處觀看有關 PHP 的一些視頻教程:語法、WordPress 中的循環和 WordPress 模板標籤。
