Zdravím Lukáši,
bohužel, není možné aby můj plugin podporoval všelijaké další pluginy v tom, co dělají specifického. Na to nemám prostor a myslím, že i z hlediska čistoty kódu by to bylo špatně.
Současně bych vám radil nezasahovat přímo do mého pluginu — jakmile vydám novou verzi, tak se vám všechny vaše změny přepíší mou novou verzí a přijdete o ně. Takto se to dělat nemá.
Pokud potřebujete, aby se filtr aplikoval i na některé další prvky, například prvky vytvářené jinými pluginy, teoreticky je to možné následujícím způsobem:
- takovou podporu si sám naprogramujete ve svém vlastním speciálním pluginu — např. plugin “Spolupráce ACF se Zalomení”. Takto budete mít jistotu, že vámi přidaná funkcionalita nebude přepsána ani novými verzemi ACF, ani novými verzemi Zalomení, ani případnými aktualizacemi šablony, kterou používáte.
- místo, které zajišťuje zobrazování příslušného prvku (např. custom pole v pluginu ACF) musí umožnit zpracování pomocí filtru, tedy těsně před vlastním vygenerováním výstupu bude volat funkci apply_filters, který umožní modifikaci obsahu. Pokud to plugin nepodporuje, zkuste požádat jeho autora a přidání takové možnost aplikovat filtr, taková žádost je většinou akceptována
- vy ve svém vlastním pluginu (bod 1) pomocí funkce add_filter přidáte metodu Zalomeni::texturize jako používaný filtr pro bod 2. Tím zajistíte, že plugin ACF před zobrazením pole sám zavolá plugin Zalomení pro přeformátování zobrazovaného textu a použití tvrdých mezer na správných místech.
Zdravím všechny a také bych chtěl poděkovat za velmi užitečný plugin!
Také jsem potřeboval aby mi Zalomení fungovalo i v ACF, nakonec je to velmi jednoduché.
Tento kód “prožene” všechny fieldy pluginem Zalomení před tím než je vypsán do šablony funkcí the_field() nebo vrácen get_field()
function my_acf_format_value( $value, $post_id, $field ) {
// run do_shortcode on all textarea values
$value = do_shortcode($value);
// return
return Zalomeni::texturize($value);
}
add_filter('acf/format_value', 'my_acf_format_value', 10, 3);
ACF nabízí možnosti jako aplikovat filtry jen na nějaké typy, nebo podle klíčů apod. Více o tomto ZDE