Rumah >Tutorial CMS >WordTekan >Membina Plugin Kaunter Log Masuk Pengguna WordPress
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
<code class="language-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 */</code>Kemudian, tambahkan ruang nama PHP dan buat kelas plugin seperti berikut:
Semua operasi dan cangkuk penapis yang diperlukan oleh plugin
<code class="language-php">namespace Sitepoint\WordPressPlugin; class Login_Counter { // ...</code>akan memasuki kaedah
. init()
<code class="language-php">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 ); }</code>
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()
<code class="language-php"> /** * 将用户登录计数保存到数据库。 * * @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 ); } }</code>Kod Keterangan: Pertama, kita periksa sama ada pengguna mempunyai medan meta
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
<code class="language-php"> /** * 使用值填充统计列。 * * @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; }</code>pertama memastikan bahawa kita memang dalam lajur
. 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()
<code class="language-php">Login_Counter::get_instance();</code>
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()
<code class="language-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 */</code>Mengapa fungsi
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()
<code class="language-php">namespace Sitepoint\WordPressPlugin; class Login_Counter { // ...</code>Apakah plugin pameran nombor kaunter dan bagaimana ia berfungsi?
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
<code class="language-php">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 ); }</code>Dalam contoh ini, fungsi
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!