Rumah >Tutorial CMS >WordTekan >Memahami ruang nama dalam sistem cangkuk WordPress
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
<code class="language-php">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; } }</code>untuk mengaitkan kaedah
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
<code class="language-php">namespace SitePoint\Plugin; class AdManager { // ... }</code>, prepend ruang nama:
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
<code class="language-php">namespace SitePoint\Plugin; function google_site_verification() { echo '<meta content="ytl89rlFsAzH7dWLs_U2mdlivbrr_jgV4Gq7wClHDUJ8" name="google-site-verification">'; } add_action( 'wp_head', 'SitePoint\Plugin\google_site_verification' );</code>Mendaftarkan cangkuk uninstall dengan kelas nama memerlukan penjagaan yang sama. Gagal memenuhi sepenuhnya nama kelas boleh membawa kepada tingkah laku yang tidak dijangka. Sentiasa sediakan ruang nama walaupun
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!