WordPress: Bina Plugin Kaunter Log Masuk Pengguna
WordPress adalah Sistem Pengurusan Kandungan yang paling popular (CMS) di web hari ini. Data Forbes menunjukkan bahawa lebih daripada 60 juta laman web di seluruh dunia berjalan di atas WordPress, yang cukup untuk membuktikan kedudukan utama dalam bidang CMS. Salah satu kelebihan besar WordPress adalah perpustakaan plug-in yang besar. Mahu membina kedai e-dagang? WooCommerce dapat memuaskan anda. Perlukan portal pengambilan? Pengurus Kerja WP adalah pilihan anda.
Tutorial ini akan membimbing anda untuk membuat plugin yang mengira bilangan kali log pengguna ke laman web WordPress dan memaparkan statistik log masuk dalam lajur tersuai dalam halaman senarai pengguna.
. Dalam kes ini, nama fail ialah /wp-content/plugins/
. Saya menganggap anda sudah biasa dengan menyambung ke pelayan anda menggunakan FTP/SFTP/SCP atau SSH. wordpress-login-count.php
. Pautan muat turun plug-in lengkap akan disediakan pada akhir tutorial ini. wordpress-login-count.php
<?php /* Plugin Name: WordPress 用户登录计数器 Plugin URI: http://sitepoint.com Description: 统计用户登录WordPress账户的次数。 Version: 1.0 Author: Agbonghama Collins Author URI: http://w3guy.com License: GPL2 */
Semua operasi dan cangkuk penapis yang diperlukan oleh plugin
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 ); }
Operasi cangkuk dicetuskan oleh WordPress apabila pengguna log masuk, jadi ini adalah cangkuk yang sesuai yang kami gunakan untuk mengira bilangan log masuk pengguna. wp_login
Fungsi dikira. 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
digunakan untuk menambah lajur tambahan ke halaman Senarai Pengguna WordPress yang akan mengeluarkan bilangan kali log pengguna dalam (lihat tangkapan skrin di atas).
Fungsi manage_users_custom_column
dan tambahkan lajur baru. 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; }
. Seterusnya if
keadaan memeriksa sama ada pengguna mempunyai kiraan log masuk. Jika benar, kembalikan kiraan log masuk; login_stat
Kaedah if
untuk mendaftarkan pelbagai operasi dan cangkuk penapis. get_instance()
init()
Akhirnya, kami akan memanggil kaedah
get_instance()
Login_Counter::get_instance();
Untuk mengetahui lebih lanjut mengenai bagaimana plugin dibina dan melaksanakannya di laman WordPress anda, muat turunnya dari GitHub. (Pautan github harus ditambah di sini)
Saya harap ini akan membantu anda belajar bagaimana untuk membangunkan plugin untuk WordPress.
Sila kongsi pendapat anda dalam komen.
. Fungsi ini akan mengembalikan ID pengguna yang sedang dilog masuk. Anda kemudian boleh menggunakan ID ini dalam kod HTML anda. Sebagai contoh, anda boleh menggunakannya untuk memaparkan mesej yang diperibadikan kepada pengguna. Berikut adalah contoh cara menggunakannya: get_current_user_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()
Fungsi mungkin tidak berfungsi untuk beberapa sebab. Sebab yang sama ialah anda cuba menggunakannya selepas menghantar tajuk. Fungsi ini mesti dipanggil sebelum sebarang output dihantar ke penyemak imbas atau ia tidak akan berfungsi. Sebab lain mungkin bahawa kelayakan yang diserahkan kepada fungsi itu tidak betul. Pastikan nama pengguna dan kata laluan betul dan pengguna wujud dalam pangkalan data WordPress anda. wp_signon()
namespace Sitepoint\WordPressPlugin; class Login_Counter { // ...
Bagaimana untuk menjejaki bilangan log masuk pengguna di WordPress?
. Cangkuk ini dicetuskan apabila pengguna log masuk. Anda boleh menggunakannya untuk meningkatkan kaunter yang disimpan dalam metadata pengguna. Berikut adalah contoh: 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 ); }
dipanggil apabila pengguna log masuk. Ia mengambil kiraan log masuk semasa dari metadata pengguna, meningkatkannya, dan kemudian mengemas kini metadata pengguna dengan kiraan baru. track_user_logins()
Atas ialah kandungan terperinci Membina Plugin Kaunter Log Masuk Pengguna WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!