Cum să suprascrii o acțiune existentă a unui plugin cu o nouă acțiune

28 ian. 2012, 08:35:34
Vizualizări: 32.7K
Voturi: 24

Folosesc un plugin care are o acțiune precum aceasta.

add_action('publish_post', 'old_action');
function old_action($pid) {
    "codul merge aici"
    }
}

Scriu un modul pentru acest plugin. Așadar, trebuie să suprascriu acea funcție de acțiune veche cu noua mea funcție de acțiune.

Aceasta este noua mea funcție.

function new_action($pid) {
      "codul merge aici"
        }
    }

Vreau să înlocuiesc acea funcție old_action cu funcția mea new_action folosind hook-uri. Mă poate ajuta cineva?

Mulțumesc

0
Toate răspunsurile la întrebare 1
3
44

Puteți utiliza funcția remove_action(), astfel:

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

Este important de menționat că dacă old_action a fost adăugat cu un parametru de prioritate, trebuie să îl specificați și în apelul remove_action, altfel nu va reuși să îl elimine. Există și alte implicații dacă old_action a fost adăugat într-o clasă. Consultați aici pentru mai multe informații.

28 ian. 2012 09:13:34
Comentarii

+1 cu precizarea că acțiunea de eliminare trebuie apelată după ce funcția pe care o elimină a fost adăugată.

Stephen Harris Stephen Harris
28 ian. 2012 10:24:42

'after_setup_theme' pare un loc bun pentru remove_action. Vezi: http://wordpress.stackexchange.com/questions/170663/remove-action-on-after-setup-theme-not-working-from-child-theme

DigitalDesignDj DigitalDesignDj
10 sept. 2016 22:48:20

Am încercat destul de mult și m-am tot întrebat - în final "after_setup_theme" a funcționat! Mulțumesc!

frizzant frizzant
27 dec. 2023 16:07:35