cangkuk WordPress: Menguasai Objek dan Kaedah Namespaced
cangkuk adalah asas kepada pembangunan WordPress. Artikel SitePoint sebelum ini meneroka asas -asas cangkuk, perbezaan antara tindakan dan penapis, dan kaedah penembakan acara alternatif. Artikel ini memberi tumpuan kepada kaedah kelas instantiated dan menavigasi ruang nama dalam sistem cangkuk WordPress.
Bayangkan membina plugin pengurus iklan. Anda akan membuat kelas
dengan kaedah untuk rangkaian iklan yang berbeza. AdManager
class AdManager { public function adsense() { ?> <ins data-ad-client="ca-pub-xxxxxxxxxxxxxxxx" data-ad-slot="6762452247" style="display:inline-block;width:336px;height:280px"></ins> (adsbygoogle = window.adsbygoogle || []).push({}); <?php } public function buysellads() { // ... } public static function get_instance() { static $instance = null; if ( $instance == null ) { $instance = new self(); } return $instance; } }
ke tindakan adsense
(mis., Dalam tema anda before_post_content
), anda memerlukan contoh kelas: functions.php
add_action( 'before_post_content', array( AdManager::get_instance(), 'adsense' ) );
Menggunakan kaedah singleton (
get_instance()
ruang nama dan sistem cangkuk WordPress
Sistem Hook WordPress mendahului ruang nama. Hooking Namespaced Functions and Methods memerlukan perhatian yang teliti.
Pertimbangkan kelas
dalam ruang nama: AdManager
SitePointPlugin
namespace SitePoint\Plugin; class AdManager { // ... }
adsense
Jika panggilan add_action( 'before_post_content', array( SitePointPluginAdManager::get_instance(), 'adsense' ) );
dan kelas berada dalam fail nama yang sama, prepending tidak diperlukan dengan ketat. Perkara yang sama berlaku untuk fungsi namespaced:
add_action
Pitfall yang berkaitan dengan ruang nama
namespace SitePoint\Plugin; function google_site_verification() { echo '<meta content="ytl89rlFsAzH7dWLs_U2mdlivbrr_jgV4Gq7wClHDUJ8" name="google-site-verification"></meta>'; } add_action( 'wp_head', 'SitePoint\Plugin\google_site_verification' );
dan kelas berada dalam fail nama yang sama.
Kesimpulan register_uninstall_hook
Atas ialah kandungan terperinci Memahami ruang nama dalam sistem cangkuk WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!