ホームページ >CMS チュートリアル >&#&プレス >WordPressフックシステムの名前空間の理解
WordPressフック:オブジェクトと名前のマスターペース型メソッド
フックは、WordPress開発の基本です。 以前のSitePointの記事では、フックの基本、アクションとフィルターの区別、および代替イベントの発火方法を調査しました。この記事では、インスタンス化されたクラスのメソッドをフックし、WordPressフックシステム内の名前空間をナビゲートすることに焦点を当てています。
広告マネージャープラグインを構築することを想像してください。 さまざまな広告ネットワークのメソッドを使用して
クラスを作成します。
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>メソッドを
アクションにフックするには(テーマのadsense
before_post_content
など)、クラスのインスタンスが必要です。
functions.php
add_action( 'before_post_content', array( AdManager::get_instance(), 'adsense' ) );
名前空間とWordPress Hook System
WordPressフックシステムは名前空間よりも前のものです。 ネームスペース化された機能とメソッドをフックするには、慎重に注意が必要です。get_instance()
名前空間内のクラスを検討してください:
その
メソッドをフックするには、名前空間を準備してください:AdManager
SitePointPlugin
<code class="language-php">namespace SitePoint\Plugin; class AdManager { // ... }</code>
adsense
呼び出しとクラスが同じ名前のファイルにある場合、準備は厳密に必要ではありません。 同じことが、名前のある関数にも当てはまります:
add_action( 'before_post_content', array( SitePointPluginAdManager::get_instance(), 'adsense' ) );
名前空間関連の落とし穴
名前のあるクラスでアンインストールフックを登録するには、同様のケアが必要です。 クラス名を完全に修飾できないと、予期しない動作につながる可能性があります。 クラスが同じ名前のファイルにある場合でも、常に名前空間を準備してください。add_action
<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>
WordPressフックシステム内のオブジェクトメソッドと名前空間を処理する方法を理解することは、堅牢なプラグインとテーマを構築するために重要です。 システムの歴史的な文脈のためにいくつかの癖がありますが、細部への注意を払ってスムーズな統合が保証されます。
register_uninstall_hook
以上がWordPressフックシステムの名前空間の理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。