it-swarm-eu.dev

Zapojení do zásuvných modulů

Pracuji na pluginu, který by v ideálním případě mohl dělat věci, když uživatel provede něco prostřednictvím jiného pluginu.

Mohu přidat vlastní háčky v těchto pluginů, ale samozřejmě to nebude fungovat dobře, když chci distribuovat můj plugin. Existuje dobrý způsob, jak přidat háčky do zásuvných modulů jiných lidí z vlastního pluginu? Je jediným skutečným řešením požádat autora, aby zahrnoval vlastní háčky tak, aby ostatní vývojáři mohli stavět mimo svou práci?

Příklad: Chci něco udělat ve svém pluginu, když někdo retweets článek. Pokud tam byl vlastní hák v jakékoliv populární retweet plugin je to, že jsem mohl připojit do a oheň z, to by bylo skvělé. Neexistuje, takže můžu upravit jejich plugin tak, aby to zahrnoval, ale to funguje pouze pro mou kopii, a nechci se snažit tuto distribuci šířit.

Musíme se jen snažit a být lepšími vývojáři pluginů, abychom mohli společně hrát Nice?

12
Ryan Elkins

@Ryan Elkins:

Myslím, že odpověď závisí na tom, jak importovat každý případ použití je pro vás. V některých případech by to bylo něco, co potřebujete rychle a špinavě, v jiných by to mohl být významnější případ použití. Zde jsou dvě věci, které vás napadnou:

Podívejte se na alternativní háčky ve WordPress Core

Pokud je to něco rychlého a špinavého, můžete použít jiné háky od jádra k úpravě toho, co potřebujete, nebo háčků proti proudu i po proudu pomocí funkce ob_start()/ob_end_clean() (viz odpověď @Todd Perkins k)Nakládání s velkým výstupem HTML prostřednictvím kódu pluginu"pro příklad kódu.)

Chcete-li vystopovat háčky, můžete použít check-in Nástroj Hooks plugin I posta včera, aby vám pomohl najít háčky, které můžete potenciálně použít.

Odeslat Patch se svým požadovaným Hook na vývojář Plugin

Pokud je váš případ použití důležitější pro vás nebo pro komunitu, doporučil bych jít dopředu a přidat háček, který potřebujete do pluginu. Pak to dobře otestujte, abyste se ujistili, že opravdu řeší váš případ použití, po kterém můžete odeslat vývojářovi záplatu v naději, že ho použije. Tímto způsobem na nich uděláte co nejjednodušší přístup tím, že jim dáte testovaný kód a budete se moci sami přesvědčit, že je to opravdu to, co potřebujete. Nemohu vám říci, jak často jsem si myslel, že potřebuji nějaký háček, abych ho našel, jen když jsem se pokusil provést hák, ale potřeboval jsem háček, který byl jiný, než jsem si poprvé představoval.

Pokud nejste obeznámeni s tvorbou záplaty, zde je dobrý článek o opravě jádra WordPressu, pro který se většina týká záplat a plug-inů, a na to, co ne, bude snad jasné, co dělat:

Snad to pomůže?

P.S. Jedna věc, kterou jsem našel trochu zklamáním a že vaše otázky adresy je procento pluginy, které jsou určeny pouze pro koncové uživatele, tj., Které nemají vlastní háčky. Představte si, že WordPress byly navrženy jako většina pluginů? Bylo by to nepružné a velmi úzce specializované řešení.

Možná by se věci lišily, kdyby WordPress měl možnost automaticky instalovat pluginy, na kterých závisely další pluginy? Jak to je, já obvykle musím napsat spoustu funkcí, které potřebuju od nuly, protože klienti chtějí věci určitým způsobem a dostupné pluginy, zatímco 90% tam neumožňuje flexibilitu aktualizovat zbývajících 10%.

Opravdu si přeji, aby ti, kteří vedou komunitu WordPress, identifikovali způsob, jak zajistit, aby byly pluginy odměňovány za dodržování nejlepších postupů (například přidávání háčků pro jiné vývojáře), stejně jako dobré odpovědi jsou odměňovány na webu StackExchange.

6
MikeSchinkel

Musíme to jen zkusit a  to být lepší vývojáři pluginů, abychom mohli hrát společně Nice?

Pro začátek ano.

Je jediným skutečným řešením požádat autora, aby zahrnoval vlastní háčky tak, aby ostatní vývojáři mohli stavět mimo svou práci?

To by bylo dobré řešení.

Můžete také zkopírovat další plugin a jednoduše přidat jakékoli změny, i když to by bylo více potíží.

2
Arlen Beiler

Myslím, že jste na otázku odpověděli v otázce, aby se stala poněkud rétorickou.

Je zřejmé, že mluvíte o podobném systému jako ten, který společnost Google podporuje systémem Android a Intent, že aplikace může publikovat akce, které je schopna vykonávat jménem jiných aplikací, které pak mohou do nich vložit a předat data zpět a dále. Osobně si myslím, že je to něco, co potřebujeme k dobrým vývojářům směřovat - používáme WordPress, protože je to už úžasné, úžasné, aby se rozhodlo, zda ho použít nebo vyvinout podobný interní produkt, který je ve většině případů docela jednoduchý. Samotné pluginové úložiště je opět to samé, většinou jako koncový uživatel + vývojář - proč vyvíjet plugin pro Twitter, když je dokonale dobrý.

Totéž je „totéž, proč se vyvíjejí duplikáty“. Systém Android Intent umožňuje aplikacím využívat již vytvořené funkce a předávat data mezi nimi, což je populární a často používané, protože je tlačeno tak silně. Existuje podobný systém, který je již implementován do WordPressu, ale je velmi zřídka používán mimo háčky přítomné v jádrovém kódu, které jsou využívány hodně.

Bylo by to prospěšné pro komunitu, kdyby bylo přítomno více háčků ve vlastních zásuvných modulech, ale jak říkáte, neexistuje žádný jednoduchý způsob, jak přidat háčky, když je potřebujete.

Pokud jde o plugin pro Twitter, který chcete připojit, pošlete autorovi e-mail, jsem si jistý, že by je rád přidal pro vás.

Pokud je místo, které si myslíte, že by bylo dobré místo, aby hák do svého pluginu, to, a dokument dobře. Pokud více lidí začne vkládat háčky do zásuvných modulů, nebo tam je obecný Push to doing, stane se to nakonec.

Tak odpovím na vaši konečnou otázku:

Musíme se jen snažit a být lepšími vývojáři pluginů, abychom mohli společně hrát Nice?

Ano.


Edit: Přemýšlel jsem více o skutečné otázce a nejlepším způsobu implementace háčků, nemohli jste přidat akci, která by se spustila, kdyby byla přítomna konkrétní funkce, kterou se pokoušíte spustit.

2
nobody

definovat funkci:

function my_footer() {
    do_action('my_footer');
}

teď můžete hák na tento háček: add_action('my_footer', 'example_function', 1); # více informací viz můj příspěvek .

0
bueltge