Jadual Kandungan
怎么避免 WordPress 中的死循环
Rumah Tutorial CMS WordTekan WordPress使用钩子进行主题开发时怎么避免死循环

WordPress使用钩子进行主题开发时怎么避免死循环

Apr 30, 2021 am 10:07 AM
php wordpress

下面由WordPress教程栏目给大家介绍WordPress使用钩子进行主题开发时怎么避免死循环,希望对需要的朋友有所帮助!

WordPress使用钩子进行主题开发时怎么避免死循环

WordPress 开发时,我们经常会使用 save_post 或 create_post_tag 等钩子,以便在更新文章或分类时,增加一些附加数据,这些钩子触发的时机是发布或更新数据的时间,如果处理不好,就会出现死循环的情况,导致更新数据时出现死循环的情况。

举个例子,我们需要在保存文章的时候,挂在一个函数到 save_post 钩子上,这个函数的目的是修改文章标题,在文章标题前面加上作者名称,我们通过调用wp_update_post 函数来显示这个修改。示例代码如下。

add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
    $title = get_the_title($post_id);
    $title = "一刀:" . $title;

    $args = [
        'ID'         => $post_id,
        'post_title' => $title,
    ];
    
    wp_update_post($args);
}
Salin selepas log masuk

上面的代码中,「save_post」这个钩子发生在 wp_update_post 函数的调用过程中,通过「save_post」钩子,我们又调用了 wp_update_post 这个函数,这个函数中,又运行了「save_post」钩子。于是,程序就这么不知疲倦的运行了下去。

有经验的程序员可能很容易就发现了这个问题,可是电脑并不知道这是个死循环,我们不能去责怪电脑,毕竟那只是个没有思想的机器。我们可以做的是在开发过程中尽量小心,避免死循环的出现。

那么,怎么解决 WordPress 中出现的这个死循环呢?其实方法很简单。

怎么避免 WordPress 中的死循环

还是上面的代码,我们稍作修改,就可以完美的避免这个死循环了。下面是修改后的代码,对比上面出现死循环的代码,我们只添加了两行。

add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
   // 获取文章标题并在文章标题前面加上作者
    $title = get_the_title($post_id);
    $title = "一刀:" . $title;

    $args = [
        'ID'         => $post_id,
        'post_title' => $title,
    ];
    
    // 更新文章
    remove_action('save_post', 'wprs_update_post');
    wp_update_post($args);
    add_action('save_post', 'wprs_update_post');
}
Salin selepas log masuk

原理很简单,在运行 「wp_update_post」函数之前,我们先卸载掉挂在掉「save_post」钩子上导致死循环的函数,这样就不会出现重复执行 「wprs_update_post」函数了,更新完文章后,我们再把这个钩子挂载上,以便后续使用。

如果您在 WordPress开发过程中遇到了死循环问题,不妨参考上面的代码进行修改,这样既能实现我们需要的功能,又不会导致死循环的问题。

Atas ialah kandungan terperinci WordPress使用钩子进行主题开发时怎么避免死循环. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Melaraskan Senarai Artikel WordPress Cara Melaraskan Senarai Artikel WordPress Apr 20, 2025 am 10:48 AM

Terdapat empat cara untuk menyesuaikan senarai artikel WordPress: Gunakan pilihan tema, gunakan plugin (seperti pesanan jenis pos, senarai pos WP, barangan boxy), gunakan kod (tambah tetapan dalam fail fungsi.php), atau ubah suai pangkalan data WordPress secara langsung.

Apakah plugin untuk wordpress menyekat ip Apakah plugin untuk wordpress menyekat ip Apr 20, 2025 am 08:27 AM

Pemilihan plugin WordPress IP menyekat adalah penting. Jenis -jenis berikut boleh dipertimbangkan: berdasarkan .htaccess: operasi yang cekap, tetapi kompleks; Operasi pangkalan data: fleksibel, tetapi kecekapan rendah; Firewall: prestasi keselamatan yang tinggi, tetapi konfigurasi kompleks; Ditulis sendiri: Kawalan tertinggi, tetapi memerlukan lebih banyak tahap teknikal.

Keserasian IIS dan PHP: menyelam yang mendalam Keserasian IIS dan PHP: menyelam yang mendalam Apr 22, 2025 am 12:01 AM

IIS dan PHP serasi dan dilaksanakan melalui FastCGI. 1.IIS meneruskan permintaan fail .php ke modul FastCGI melalui fail konfigurasi. 2. Modul FastCGI memulakan proses PHP untuk memproses permintaan untuk meningkatkan prestasi dan kestabilan. 3. Dalam aplikasi sebenar, anda perlu memberi perhatian kepada butiran konfigurasi, debugging ralat dan pengoptimuman prestasi.

Cara Menulis Tajuk WordPress Cara Menulis Tajuk WordPress Apr 20, 2025 pm 12:09 PM

Langkah -langkah untuk membuat tajuk tersuai di WordPress adalah seperti berikut: Edit fail tema "header.php". Tambahkan nama dan keterangan laman web anda. Buat menu navigasi. Tambah bar carian. Simpan perubahan dan lihat tajuk tersuai anda.

Cara membatalkan tarikh penyuntingan WordPress Cara membatalkan tarikh penyuntingan WordPress Apr 20, 2025 am 10:54 AM

Tarikh pengeditan WordPress boleh dibatalkan dalam tiga cara: 1. Pasang tarikh pasca Lumpuhkan Plug-in; 2. Tambah kod dalam fail Functions.php; 3 secara manual mengedit lajur post_modified dalam jadual WP_POSTS.

Cara menukar imej kepala tema WordPress Cara menukar imej kepala tema WordPress Apr 20, 2025 am 10:00 AM

Panduan langkah demi langkah untuk menggantikan imej header WordPress: Log masuk ke papan pemuka WordPress dan menavigasi ke penampilan & gt; tema. Pilih topik yang ingin anda edit dan klik Sesuaikan. Buka panel Pilihan Tema dan cari tajuk laman web atau pilihan imej header. Klik butang Pilih Imej dan muat naik imej kepala baru. Tanaman imej dan klik simpan dan tanaman. Klik butang Simpan dan Terbitkan untuk mengemas kini perubahan.

Log masuk akaun laman web wordpress Log masuk akaun laman web wordpress Apr 20, 2025 am 09:06 AM

Untuk log masuk ke akaun laman web WordPress: Lawati halaman log masuk: Masukkan URL laman web ditambah "/wp-login.php". Masukkan nama pengguna dan kata laluan anda. Klik "Login". Pengesahan Pengesahan Dua Langkah (Pilihan). Selepas berjaya masuk, anda akan melihat papan pemuka laman web.

Apa yang perlu dilakukan sekiranya terdapat ralat di WordPress Apa yang perlu dilakukan sekiranya terdapat ralat di WordPress Apr 20, 2025 am 11:57 AM

Panduan Resolusi Ralat WordPress: 500 Ralat Pelayan Dalaman: Lumpuhkan pemalam atau periksa log ralat pelayan. 404 Page Tidak Ditemui: Semak Permalink dan pastikan pautan halaman betul. Skrin Putih Kematian: Meningkatkan Had Memori PHP Server. Ralat Sambungan Pangkalan Data: Semak status pelayan pangkalan data dan konfigurasi WordPress. Petua lain: Dayakan mod debug, periksa log ralat, dan dapatkan sokongan. Mencegah kesilapan: Kemas kini dengan kerap WordPress, pasang hanya plugin yang diperlukan, sandarkan secara teratur laman web anda, dan mengoptimumkan prestasi laman web.

See all articles