Heim > Backend-Entwicklung > PHP-Tutorial > Analyse der Verwendung von Hooks in WordPress

Analyse der Verwendung von Hooks in WordPress

*文
Freigeben: 2023-03-18 17:08:02
Original
2246 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die Rolle und die grundlegende Verwendung von Hooks beim Parsen von Funktionen in WordPress vorgestellt. Hooks sind eine wichtige Verwendung von Aufruffunktionen in WordPress und bilden auch die Grundlage für die Plug-in-Entwicklung. Ich hoffe, es hilft allen.

Der Plug-in-Mechanismus von WordPress ist eigentlich nur dieser Hook. Er wird auf Chinesisch in „Hook“ übersetzt und ermöglicht es Ihnen, am Betrieb des WordPress-Kerns teilzunehmen es unten.
Hook-Klassifizierung

Hooks werden in zwei Typen unterteilt, einer wird als Aktion und der andere als Filter bezeichnet. Die Implementierungsprinzipien dieser beiden Hooks sind grundsätzlich gleich. Wie später erwähnt wird, besteht der Unterschied in der Verwendung darin, dass Filter Rückgabewerte haben, Aktionen jedoch nicht. Die Idee von

-Aktionen besteht darin, Ihnen die Ausführung einiger Funktionen in einer Situation oder an einem bestimmten Ort zu ermöglichen, z. B. das Senden einer E-Mail usw.; Filter ermöglichen es Ihnen, einen Wert zu ändern, den der WordPress-Kern verwenden muss , und dann WordPress Verwenden Sie diese Werte dann, um etwas zu tun, z. B. den Rückgabewert der Funktion usw.

Aktions-Hook

wp_head ist ein sehr häufig verwendeter Aktions-Hook. Während des Theme-Entwicklungsprozesses fügen Entwickler tatsächlich die Funktion wp_head() hinzu , es ist diese Funktion, die den wp_head-Hook aufruft.

Wenn der Plugin-Entwickler einen Satz im Head-Tag hinzufügen möchte, kann er den Hook wp_head verwenden. Hier ist ein einfaches Beispiel.


//在 head 标签添加一些内容
function Bing_add_head_tag(){
  echo '添加内容';
}
add_action( 'wp_head', 'Bing_add_head_tag' );
Nach dem Login kopieren


Nachdem Sie den Code hinzugefügt haben, sehen Sie sich den Quellcode der Front-End-Webseite an, und Sie können den Inhalt sehen Wir haben im Head-Tag hinzugefügt.

20151222154540066.png (437×83)

Das Obige ist ein einfaches Beispiel, bei dem nur ein Satz gedruckt wird. Mit diesem Hook können wir auch ein Plug-in erstellen, das eine E-Mail an den Administrator sendet, wenn eine 404-Seite auftritt. Wir haben unten einfach eine geschrieben.


//遇到 404 页面给管理员发送邮件
function Bing_404_page_mail(){
  if( !is_404() ) return;//如果不是 404 页面就退出函数
  $to = get_option( 'admin_email' );//获取管理员地址
  $subject = '遇到 404 页面啦!';//邮件标题
  $message = '404 页面的地址:http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];//邮件内容
  wp_mail( $to, $subject, $message );//发送邮件
}
add_action( 'wp_head', 'Bing_404_page_mail' );
Nach dem Login kopieren


Filterhaken

Basierend auf meiner persönlichen Erfahrung, Filter-Hooks können schwer zu verstehen sein, insbesondere für Leute, die mit PHP nicht vertraut sind.

Mit Filter-Hooks können Sie den Wert von etwas ändern. Die Filter-Callback-Funktion akzeptiert einen Parameter, der der aktuelle Wert ist. Denken Sie an die Funktion the_content(), die zum Aufrufen des Artikelinhalts verwendet wird. Diese Funktion stellt einen the_content-Filter bereit.

Fügen Sie eine Funktion zum the_content-Hook hinzu. Diese Funktion muss einen Parameter empfangen, der der aktuelle Wert ist.


//文章内容全部链接新窗口打开
function Bing_autoblank( $content ){//$content 变量就是文章内容,因为其它过滤器也要过滤,所以这个内容可能是经过其它函数过滤的
  $content = str_replace( &#39;<a&#39;, &#39;<a target="_blank"&#39;, $content );//添加 target="_blank"
  return $content;//必须要把过滤后的内容返回回去,否则值就丢了
}
add_filter( &#39;the_content&#39;, &#39;Bing_autoblank&#39; );
Nach dem Login kopieren


Hook-Prinzip

Tatsächlich beim Aufruf von add_action() und Beim Hinzufügen von_filter() wird nur ein Array-Element zur globalen Variablen $wp_filter hinzugefügt. Darüber hinaus sind die Aktion und der Filter eine gemeinsame globale Variable. Das heißt, der Filter und die Aktion können nicht denselben Namen haben.

Wenn do_action() aufgerufen wird, findet es die zu dieser Aktion hinzugefügten Funktionen in der globalen Variablen $wp_filter und führt sie in einer Schleife aus.

apply_filters() hat einen Schritt mehr als do_action(), nämlich den Rückgabewert dieser Funktion bei jedem Aufruf zu empfangen und schließlich den mehrfach gefilterten Wert zur Verwendung zurückzugeben.

Holen Sie sich die aktuelle Hook-Liste
WordPress-Aktionen und -Filter sind der Kernbestandteil des Plug-in-Mechanismus und ermöglichen Ihnen das aktive Hinzufügen von Aktionen, die Sie an bestimmten Stellen ausführen müssen, im Allgemeinen mithilfe von add_action() und add_filter()-Funktionen Mount-Funktion.

Diese Hooks werden in der globalen Variablen $wp_filter gespeichert. Um die Hook-Liste zu erhalten, können Sie also direkt die globale Variable $wp_filter abrufen.


<pre class="brush:php;toolbar:false"><?php var_dump( $GLOBALS[&#39;wp_filter&#39;] ); ?>
Nach dem Login kopieren


Der obige Code druckt die Hook-Liste aus.

20151222154645343.png (388×432)

Verwandte Empfehlungen:

So nehmen Sie allgemeine Einstellungen in WordPress vor

Ein praktisches Tutorial zur Verwendung von WordPress zur Entwicklung von WeChat-Miniprogrammen

WordPress zum Erstellen und Erhalten von Seitenleisten PHP Funktionsbeispiele

Das obige ist der detaillierte Inhalt vonAnalyse der Verwendung von Hooks in WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage