Odstranění "action" z externího pluginu

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Odstranění "action" z externího pluginu

Zvolené téma obsahuje celkem 6 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Twinsen a poslední změna je stará 2 roky, 10 měsíců.

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (z celkem 7)
  • Autor
    Příspěvky
  • #29755

    Twinsen
    Participant

    Ahoj,

    prosím o radu. Externí plugin má v kódu toto:

    class PP_CC {
    ...
    $plugin_public = new PP_CC_Public( $this->options, $this->version );
    add_action( 'wp_head', array( $plugin_public, 'insert_data' ), 99999 );
    ...
    }

    Snažím se ve své šabloně (a určité stránce) toto vypnout nějak takto, ale bez úspěchu:

    remove_action( 'wp_head', array( PP_CC, 'insert_data' ), 99999 );

    Předem díky za každou radu.

    #29774

    admin
    Keymaster
    Web

    Nemáte konkrétní příklad, který by se to mohlo vyzkoušet? Obecně by to mělo být takto správně. Sice se tam načítá ještě další třída, ale to by nemělo vadit. Ještě může být problém v tom, kde a jak je to načítáno. Pokud je původní kód spouštěn později než se pokoušíte akci odebrat, tak to možná nebude fungovat, případně bych ještě zkusil při odebírání navýšit prioritu, třeba na 999999.

    A když používáte při odebrání akce PP_CC, tak je tam v tu chvíli nějaká aktivní instance? Neměla by se předtím vytvořit, např. nějak takto?

    $object = new PP_CC();
    remove_action( 'wp_head', array( $object, 'insert_data' ), 99999 );
    #29777

    Twinsen
    Participant

    Zkusil jsem více variant i tyto zde popisované (codex k remove_action() v podstatě toto i demonstruje) .. krásně je to popsané i tady – bohužel u mě zatím bez výsledku.

    Pokud uvážíme, že plugin spouští kód později, jsou pak nějaké možnosti řešení?

    #29778

    admin
    Keymaster
    Web

    Určitě by mělo být možné tu akci odstranit, ale už hodně záleží na tom, jak je to celé realizované a spouštěné… Je to nějaký veřejný plugin? Nebo ho můžete poslat, když budu mít chvilku, tak se na to zkusím podívat…

    #30173

    Twinsen
    Participant

    Nejednalo se o veřejný plugin a tento problém vyřešil nakonec autor pomocí opravného “patche”. Ale i tak díky za podporu zde v diskusi.

    #30174

    admin
    Keymaster
    Web

    @twinsen: Díky moc za reakci! Takže nyní už akce odebírat lze? Jen pro zajímavost, netušíte co se konkrétně změnilo, že to začalo fungovat? Nebo se to nakonec vyřešilo celé trochu jinak?

    #31197

    Twinsen
    Participant

    Autor dodělal nějakou novou funkcionalitu na toto – takže se to vyřešilo jinak. Ale zde jsem jistě postupoval správně.

Aktuálně je na stránce zobrazeno 7 příspěvků - 1. až 7. (z celkem 7)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.