Rumah >Tutorial CMS >WordTekan >Menggali lebih mendalam ke dalam cangkuk dan penapis WordPress
Artikel ini meneroka cangkuk dan penapis WordPress, alat yang kuat untuk menyesuaikan plugin dan tema. Pemaju boleh menggunakannya untuk menambah fungsi tersuai pada titik tertentu dalam operasi WordPress.
Konsep Utama:
remove_action
Fungsi ini menghilangkan cangkuk dan penapis standard. Ia memerlukan nama cangkuk, fungsi untuk dikeluarkan, dan keutamaan fungsi.
remove_action
Banyak plugin dan tema menggunakan prinsip pengaturcaraan berorientasikan objek (OOP), menentukan fungsi dalam kelas. Mengeluarkan atau menggantikan cangkuk dalam kelas ini memberikan cabaran yang unik.
Mengeluarkan cangkuk standard:
Mengeluarkan cangkuk di luar kelas agak mudah menggunakan fungsi . Fungsi ini memerlukan:
remove_action
$tag
: Fungsi untuk dikeluarkan. $function_to_remove
: Keutamaan fungsi apabila ditambah. $priority
do_action
add_action
Contoh: WooCommerce serbuk roti
bar breadcrumb WooCommerce, dipaparkan melalui , boleh dikeluarkan:
do_action( 'woocommerce_before_main_content' );
<code class="language-php">remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);</code>
Mengeluarkan cangkuk dalam kelas lebih kompleks. Pembolehubah kelas mesti diluluskan kepada :
<code class="language-php">remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);</code>
Mencari objek kelas adalah penting. Untuk kelas singleton, gunakan kaedah seperti MyClass::getInstance()
. Jika tidak, cuba mengaksesnya secara global (mis., global $myClassObject
). Memeriksa unsur -unsur dan mengesan kembali ke fungsi yang berkaitan dapat membantu mengenal pasti cangkuk dan fungsi.
Contoh: e -mel wooCommerce
kelas WC_Emails
dalam WooCommerce mengendalikan generasi e -mel. Untuk mengalih keluar butiran pelanggan dari e -mel:
<code class="language-php">remove_action('hook_name', array($myclass, 'my_function_remove'), 10);</code>
Contoh: penyingkiran cangkuk kelas adat
Contoh ini menunjukkan mengeluarkan cangkuk dari kelas tersuai dalam tema induk, yang dikendalikan dalam tema kanak -kanak:
<code class="language-php">function remove_customer_email_details($instance) { remove_action('woocommerce_email_customer_details', array( $instance, 'customer_details'), 10); } add_action('woocommerce_email', 'remove_customer_email_details');</code>
Apabila teknik ini gagal:
Jika objek kelas tidak dapat diakses, pertimbangkan:
Atas ialah kandungan terperinci Menggali lebih mendalam ke dalam cangkuk dan penapis WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!