WordPress:構建一個用戶登錄計數器插件
WordPress是當今網絡上最流行的內容管理系統(CMS)。福布斯的數據顯示,全球超過6000萬個網站都運行在WordPress之上,這足以證明其在CMS領域的領先地位。 WordPress的一大優勢在於其龐大的插件庫。想建立一個電子商務商店? WooCommerce可以滿足你。需要一個招聘門戶網站? WP Job Manager是你的選擇。
本教程將指導你創建一個插件,用於統計用戶登錄WordPress網站的次數,並在用戶列表頁面中的自定義列中顯示登錄統計信息。
插件開發
大多數WordPress插件文件都是PHP文件,位於/wp-content/plugins/
目錄下。在本例中,文件名為wordpress-login-count.php
。我假設你熟悉使用FTP/SFTP/SCP或SSH連接到你的服務器。
如果你想跟著一起操作,請創建插件PHP文件wordpress-login-count.php
。本教程末尾將提供完整的插件下載鏈接。
首先,包含插件頭文件。沒有頭文件,WordPress將無法識別該插件。
<?php /* Plugin Name: WordPress 用户登录计数器 Plugin URI: http://sitepoint.com Description: 统计用户登录WordPress账户的次数。 Version: 1.0 Author: Agbonghama Collins Author URI: http://w3guy.com License: GPL2 */
然後,添加PHP命名空間並創建插件類,如下所示:
namespace Sitepoint\WordPressPlugin; class Login_Counter { // ...
插件所需的所有操作和過濾器鉤子都將進入init()
方法。
public function init() { add_action( 'wp_login', array( $this, 'count_user_login' ), 10, 2 ); add_filter( 'manage_users_columns', array( $this, 'add_stats_columns' ) ); add_action( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 ); }
wp_login
操作鉤子在用戶登錄時由WordPress觸發,因此這是我們用來統計用戶登錄次數的合適鉤子。
下面的count_user_login()
函數進行計數。
/** * 将用户登录计数保存到数据库。 * * @param string $user_login 用户名 * @param object $user WP_User 对象 */ public function count_user_login( $user_login, $user ) { if ( ! empty( get_user_meta( $user->ID, 'sp_login_count', true ) ) ) { $login_count = get_user_meta( $user->ID, 'sp_login_count', true ); update_user_meta( $user->ID, 'sp_login_count', ( (int) $login_count + 1 ) ); } else { update_user_meta( $user->ID, 'sp_login_count', 1 ); } }
代碼說明:首先,我們檢查用戶是否有一個空的sp_login_count
元字段。如果為假,我們獲取之前保存的登錄計數並將其加1;如果為真,則表示用戶是第一次登錄。因此,值1將保存到用戶的元字段中。
manage_users_custom_column
過濾器用於向WordPress用戶列表頁面添加一個額外的列,該列將輸出用戶登錄的次數(參見上面的屏幕截圖)。
fill_stats_columns()
函數掛接到manage_users_custom_column
上,添加新列。
/** * 使用值填充统计列。 * * @param string $empty * @param string $column_name * @param int $user_id * * @return string|void */ public function fill_stats_columns( $empty, $column_name, $user_id ) { if ( 'login_stat' == $column_name ) { if ( get_user_meta( $user_id, 'sp_login_count', true ) !== '' ) { $login_count = get_user_meta( $user_id, 'sp_login_count', true ); return "<strong>$login_count</strong>"; } else { return __( 'No record found.' ); } } return $empty; }
代碼說明:第一個if
條件確保我們確實在login_stat
列中。下一個if
條件檢查用戶是否存在登錄計數。如果為真,則返回登錄計數;否則,返回文本“No record found”。
get_instance()
方法創建類的單例實例,然後調用init()
方法來註冊各種操作和過濾器鉤子。
最後,我們將調用get_instance()
方法來運行PHP類。
Login_Counter::get_instance();
大功告成!我們完成了登錄計數器插件的編碼。
總結
要進一步了解插件的構建方式並在你的WordPress網站中實現它,請從GitHub下載它。 (此處應添加GitHub鏈接)
我希望這將有助於你學習如何為WordPress開發插件。
請在評論中分享你的想法。
關於構建WordPress用戶登錄計數器插件的常見問題解答 (FAQs)
如何在任何帖子的HTML代碼中使用當前用戶ID?
要在任何帖子的HTML代碼中使用當前用戶ID,你需要使用WordPress函數get_current_user_id()
。此函數將返回當前登錄用戶的ID。然後,你可以在HTML代碼中使用此ID。例如,你可以用它向用戶顯示個性化消息。以下是如何使用它的示例:
<?php /* Plugin Name: WordPress 用户登录计数器 Plugin URI: http://sitepoint.com Description: 统计用户登录WordPress账户的次数。 Version: 1.0 Author: Agbonghama Collins Author URI: http://w3guy.com License: GPL2 */
為什麼wp_signon()
函數不起作用?
wp_signon()
函數可能由於多種原因而無法工作。一個常見的原因是你在發送標頭後嘗試使用它。此函數必須在任何輸出發送到瀏覽器之前調用,否則它將無法工作。另一個原因可能是傳遞給函數的憑據不正確。確保用戶名和密碼正確,並且用戶存在於你的WordPress數據庫中。
如何使用PHP創建登錄計數器?
要使用PHP創建登錄計數器,可以使用會話或cookie。當用戶登錄時,你可以遞增存儲在會話或cookie中的計數器。這是一個使用會話的簡單示例:
namespace Sitepoint\WordPressPlugin; class Login_Counter { // ...
什麼是Counter Number Showcase插件,它是如何工作的?
Counter Number Showcase插件是一個WordPress插件,允許你在你的網站上顯示計數器。你可以用它來顯示各種統計數據,例如用戶數、帖子數、評論數等等。該插件提供一個短代碼,你可以在你的帖子或頁面中使用它來顯示計數器。你可以使用插件的設置來自定義計數器的外觀。
如何跟踪WordPress中的用戶登錄次數?
要跟踪WordPress中的用戶登錄次數,可以使用wp_login
操作鉤子。每當用戶登錄時,都會觸發此鉤子。你可以用它來遞增存儲在用戶元數據中的計數器。以下是一個示例:
public function init() { add_action( 'wp_login', array( $this, 'count_user_login' ), 10, 2 ); add_filter( 'manage_users_columns', array( $this, 'add_stats_columns' ) ); add_action( 'manage_users_custom_column', array( $this, 'fill_stats_columns' ), 10, 3 ); }
在這個例子中,每當用戶登錄時,都會調用track_user_logins()
函數。它從用戶的元數據中檢索當前的登錄計數,遞增它,然後使用新的計數更新用戶的元數據。
注意: 以上代碼示例已進行了一些調整,使其更符合WordPress編碼規範和可讀性。 實際的插件代碼可能需要更全面的錯誤處理和安全性考慮。 請務必在生產環境中仔細測試你的插件。
以上是構建WordPress用戶登錄計數器插件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

您想將博客從 WordPress.com 移至 WordPress.org 嗎? 許多初學者從 WordPress.com 開始,但很快意識到其局限性,並希望切換到自託管 WordPress.org 平台。 在本分步指南中,我們將向您展示如何正確地將博客從 WordPress.com 移動到 WordPress.org。 為什麼從 WordPress.com 遷移到 WordPress.org? WordPress.com 允許任何人通過創建帳戶來

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

就在幾天前,我們的一位用戶報告了一個不尋常的問題。問題是他達到了自定義菜單項的限制。達到菜單項限制後他保存的任何內容都將根本無法保存。我們從未聽說過這個問題,因此我們決定在本地安裝上嘗試一下。創建了 200 多個菜單項並保存。效果很好。將 100 個項目移至下拉列表中,保存效果非常好。那時我們就知道這與服務器有關。經過進一步研究,似乎還有許多其他人也遇到了同樣的問題。深入挖掘後,我們發現了一張 trac 票證 ( #14134 ) 強調了這個問題。在閱讀了非常

您需要將自定義元字段添加到 WordPress 中的自定義分類法嗎? 自定義分類法可讓您組織除類別和標籤之外的內容。有時添加其他字段來描述它們很有用。 在本文中,我們將向您展示如何將其他元字段添加到他們創建的分類法中。 何時應將自定義元字段添加到自定義分類法? 當您在WordPress 網站上創建新內容時,您可以使用兩種默認分類法(類別和標籤)對其進行組織。 一些網站受益於自定義分類法的使用。這些允許您以其他方式對內容進行排序。 例如,

Windows live writer 是一款多功能工具,可讓您直接從桌面將帖子發佈到 WordPress 博客上。這意味著您根本不需要登錄 WordPress 管理面板來更新您的博客。在本教程中,我將向您展示如何使用 Windows Live Writer 為您的 WordPress 博客啟用桌面發布。 如何在 WordPress 上設置 Windows Live Writer 第 1 步: 要通過 Windows Live Writer 在 WordPr

最近,我們的一位用戶報告了一個非常奇怪的安裝問題。寫帖子時,他們看不到自己寫的任何內容。因為帖子編輯器的文字是白色的。更重要的是,所有可視化編輯器按鈕都丟失了,並且從可視化切換到 HTML 的功能也不起作用。在本文中,我們將向您展示如何修復 WordPress 可視化編輯器中的白色文本和缺失按鈕問題。 初學者註意事項:如果您正在尋找可能在其他網站的屏幕截圖中看到的隱藏按鈕,那麼您可能正在尋找廚房水槽。您必須單擊廚房水槽圖標才能看到其他選項,例如下劃線、從單詞複製等。

您想在 WordPress 中顯示用戶電子郵件中的頭像嗎? Gravatar 是一項將用戶的電子郵件地址連接到在線頭像的網絡服務。 WordPress 會自動在評論部分顯示訪問者的頭像,但您可能也想將它們添加到網站的其他區域。 在本文中,我們將向您展示如何在 WordPress 中顯示用戶電子郵件中的頭像。 什麼是 Gravatar 以及為什麼要顯示它? Gravatar代表全球認可的頭像,它允許人們將圖片鏈接到他們的電子郵件地址。 如果網站支

您想更改 WordPress 中的默認媒體上傳位置嗎? 將媒體文件移動到其他文件夾可以提高網站的速度和性能,並幫助您更快地創建備份。它還使您可以自由地以最適合您的方式組織文件。 在本文中,我們將向您展示如何更改 WordPress 中的默認媒體上傳位置。 為什麼要更改默認媒體上傳位置? 默認情況下,WordPress 將所有圖像和其他媒體文件存儲在 /wp-content/uploads/ 文件夾中。 在此文件夾中,您將找到不同年份和月份的子


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。