Dalam bahagian terakhir tutorial ini, kami mempelajari cara menggunakan kelas pengaktifan pemalam TGM untuk memerlukan pemalam Envato WordPress Toolkit pada bila-bila masa tema kami sedang digunakan. Pemalam membenarkan pengguna memasang dan mengemas kini tema yang dibeli dalam pentadbir.
Bahagian seterusnya akan mengajar anda cara melaksanakan Perpustakaan Envato WordPress Toolkit supaya kami boleh menggunakan Envato Marketplace API untuk menyemak secara kerap apabila kemas kini kepada tema kami tersedia.
Apabila kemas kini tersedia, kami akan memaparkan pemberitahuan dalam pentadbir dan mengarahkan pengguna untuk mengakses pemalam untuk mengemas kini.
Kami perlu memasukkan perpustakaan kit alat terlebih dahulu ke dalam projek kami. Muat turun fail ZIP Pustaka Alat Envato WordPress. Nyahzip dan salin folder envato-wordpress-toolkit-library ke dalam folder inc dalam tema anda. Anda sepatutnya mendapat laluan ini:
Nota: Anda boleh menukar lokasi fail di atas mengikut keperluan anda. Sebagai alternatif, anda boleh memuat turun kod sumber penuh daripada pautan muat turun di bahagian atas artikel ini.
Kini kita boleh mulakan pengekodan. Kami akan menyambung operasi admin_init
. Tambahkan kod berikut pada admin_init
操作。将以下代码添加到您的 functions.php 中:
/** * Load the Envato WordPress Toolkit Library check for updates * and direct the user to the Toolkit Plugin if there is one */ function envato_toolkit_admin_init() { // Include the Toolkit Library include_once( get_template_directory() . '/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php' ); // Add further code here } add_action( 'admin_init', 'envato_toolkit_admin_init' );
工具包库需要 Envato 用户名和 API 密钥才能工作。由于我们在上一个教程中需要 Toolkit 插件,因此我们可以使用在其设置中找到的用户名和 API 密钥字段的输入值。如果这些字段未填写,我们可以显示一条通知,要求用户在 Toolkit 插件中输入它们。
// Use credentials used in toolkit plugin so that we don't have to show our own forms anymore $credentials = get_option( 'envato-wordpress-toolkit' ); if ( empty( $credentials['user_name'] ) || empty( $credentials['api_key'] ) ) { add_action( 'admin_notices', 'envato_toolkit_credentials_admin_notices' ); return; }
我们需要在外部添加相应的钩子函数来显示我们的管理通知:
/** * Display a notice in the admin to remind the user to enter their credentials */ function envato_toolkit_credentials_admin_notices() { $message = sprintf( __( "To enable theme update notifications, please enter your Envato Marketplace credentials in the %s", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
工具包库始终使用 Envato Marketplace API 检查主题更新。这并不好,因为每次用户访问管理页面时都执行它会显着减慢页面加载时间。我们只需要定期检查更新即可。
每 3 小时检查一次听起来是个好主意:
// Check updates only after a while $lastCheck = get_option( 'toolkit-last-toolkit-check' ); if ( false === $lastCheck ) { update_option( 'toolkit-last-toolkit-check', time() ); return; } // Check for an update every 3 hours if ( 10800 < ( time() - $lastCheck ) ) { return; } // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );
最后,我们可以使用该库检查更新:
// Check for updates $upgrader = new Envato_WordPress_Theme_Upgrader( $credentials['user_name'], $credentials['api_key'] ); $updates = $upgrader->check_for_theme_update(); // If $updates->updated_themes_count == true then we have an update!
从这一刻起,您可以选择使用工具包库函数 $upgrader->upgrade_theme();
functions.php
// Add update alert, to update the theme if ( $updates->updated_themes_count ) { add_action( 'admin_notices', 'envato_toolkit_admin_notices' ); }
3.
/** * Display a notice in the admin that an update is available */ function envato_toolkit_admin_notices() { $message = sprintf( __( "An update to the theme is available! Head over to %s to update it now.", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
4.
Akhir sekali, kami boleh menyemak kemas kini menggunakan perpustakaan ini:
rrreee
6.
Pemberitahuan kemas kini tema$upgrader->upgrade_theme();
, namun, saya percaya ia adalah idea yang baik untuk memberikan pengguna pilihan.
Cadangan saya ialah untuk hanya menunjukkan pemberitahuan untuk kemas kini tema dan membenarkan pengguna mengemas kini menggunakan pemalam Toolkit:
rrreee
🎜Kita perlu memaparkan fungsi yang memaparkan pemberitahuan di luar fungsi semasa: 🎜
rrreee
🎜
🎜Mengapa menggunakan pemalam ini pada mulanya? 🎜
🎜Anda mungkin fikir tidak mengapa untuk 🎜hanya gunakan perpustakaan Toolkit tanpa pemalam Toolkit🎜, dan kemudian mungkin tunjukkan nama pengguna dan borang kunci API kami sendiri dalam pilihan tema.🎜
🎜Walaupun ini boleh dilakukan sepenuhnya, menggunakan pemalam ini memberi kita beberapa faedah: 🎜
🎜
🎜Dalam pengaktifan tema baharu, tema kami akan menyemak kemas kini secara automatik jika pemalam Toolkit telah dipasang sebelum ini. 🎜
🎜Kami tidak perlu menambah set borang tambahan untuk diisi oleh pengguna. 🎜
🎜Pengguna boleh mengemas kini pemalam Toolkit sendiri, jadi perubahan dalam API Marketplace boleh digunakan pada tika WordPress tanpa sebarang panduan tema. 🎜
🎜
🎜
🎜Kesimpulan🎜
🎜Itu sahaja! Kami telah menyepadukan pemalam dan perpustakaan Envato WordPress Toolkit untuk menyemak kemas kini tema. Kini, pelanggan kami akan menerima pemberitahuan pentadbir sebaik sahaja kemas kini tersedia di pasaran. Perkara terbaik yang kami lakukan ialah mereka boleh melakukan kemas kini dengan mudah tanpa meninggalkan pentadbir. 🎜
🎜Anda boleh meneruskan untuk memuat turun kod sumber penuh daripada pautan di atas artikel. Kod ini juga merangkumi topik yang diliputi dalam bahagian sebelumnya dalam tutorial ini. 🎜
🎜Memandangkan ini adalah siri tutorial pertama saya, saya amat menghargai sebarang maklum balas, komen dan cadangan. Beritahu saya apa yang anda fikirkan! 🎜
🎜🎜🎜🎜🎜Atas ialah kandungan terperinci Tingkatkan tema anda dengan Envato WordPress Toolkit: Library. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!