Enganxaments de WordPress: guia per a principiants per afegir enganys propis

Enganxaments de WordPress: guia per a principiants per afegir enganys propis

Enganxaments de WordPress: guia per a principiants per afegir enganys propis
СОДЕРЖАНИЕ
02 июня 2020

Els connectors són el manera d’estendre WordPress. El motiu pel qual és tan fàcil fer que WordPress faci les vostres ofertes té a veure amb els ganxos que es troben al codi font.


Voleu fer alguna cosa tan bon punt es publiqui una publicació? Voleu modificar la longitud de l’extracte? Voleu crear les vostres estadístiques de visualització de pàgines? Trobar el ganxo adequat és tot el que heu de fer.

Però, què hi ha de fer el mateix amb els plugins? Els ganxos no només serveixen per a WordPress, sinó que essencialment són un patró de disseny que podeu implementar en el vostre propi treball.

En aquest article, us mostraré com podeu crear els vostres ganxos per facilitar-vos la vostra feina o altres persones.

Per què necessitem enganxades?

Per mostrar-vos com són els ganxos fantàstics, mirem un exemple del món real: Camps personalitzats avançats. Aquest complement us permet afegir camps de dades flexibles a les publicacions; estem parlant de Google Maps, camps de números, opcions múltiples i molt més.

Tot això es fa mitjançant una bona interfície d’usuari, tot el que cal fer és utilitzar funcions com get_field () o the_field () al front end. Fins ara, tot bé.

Suposem que esteu creant una eina que permeti a la gent vendre coses, oferint un camp pel preu i un altre per a la moneda. No obstant això, sempre voleu emmagatzemar els preus en dòlars, independentment de la moneda que l’usuari triï per mostrar.

Si ACF (Camps personalitzats avançats) no té cap ganxo, és difícil fer-ho, potser haureu d’utilitzar un mecanisme fora d’ACF per desar aquest camp. Per sort, estem protegits per aquesta acf / save_post acció. Podeu utilitzar aquesta acció per modificar les dades de $ _POST abans de guardar-les: un moment perfecte per convertir el preu a dòlars.

Aquest és un exemple molt pràctic de ganxos, però hi ha un altre motiu: prova futura i extensibilitat. Els ganxos són com una API, que us donen orientació; un marc per així dir-ho. Si deseu dades importants, haureu de crear automàticament un ganxo per tal que altres puguin manipular les dades si cal. Si mostreu alguna cosa crítica per a la vostra aplicació, per exemple, utilitzeu imatges, utilitzeu un filtre que us permeti definir el nombre d’imatges mostrades.

Com funcionen els ganxos internament

Per crear els nostres propis enganxaments, farem exactament el que fa internament WordPress. Utilitzem les funcions do_action () i apply_filters () per executar totes les funcions enganxades. Tornem al codi font de WordPress per veure com funcionen.

WordPress utilitza la funció wp_trim_excerpt () internament per crear un fragment. A WordPress 4.1, aquesta funció es defineix a wp-include / formatting.php, a partir de la línia 2542. Si us fixeu en la línia 2560, hauríeu de veure el següent:

$ excerpt_length = apply_filters (“excerpt_length”, 55);

El que significa això és el següent: Executeu totes les funcions enganxades als enganxats extra = longitud i torneu el valor final. Suposem que utilitzeu 3 plugins que modifiquen la longitud de l’excés, què passa llavors? Agrupem aquestes funcions en un sol lloc i fem un cop d’ull:

add_filter (‘extra_length’, ‘plugin_a_excerpt_modify’, 20);
plugin_a_excerpt_modify (longitud $) {
retorna la durada $ – 10;
}

add_filter (“extra_length”, “plugin_b_excerpt_modify”, 32);
plugin_b_excerpt_modify (longitud $) {
retorn 104;
}

add_filter (“extra_length”, “plugin_c_excerpt_modify”, 16);
plugin_c_excerpt_modify (longitud $) {
retorn 20;
}

Al final, la longitud extreta serà de 104 paraules. Els filtres s’executen en el seu ordre de prioritat. Per tant, la funció del complement C s’executa primer. Si no s’enllaçava cap altra funció, la longitud seria ara de 20 paraules. A continuació, el complement A s’inicia i la longitud es converteix en 10. Finalment, el connector B pesa, aconseguint la longitud 104.

do_action () utilitza el mateix mecanisme, executant totes les funcions lligades al ganxo definit com a primer paràmetre.

Tingueu en compte que aquest patró està completament adjunt, no depèn de cap definició especial. Podeu utilitzar do_action (“lol_hook”) a qualsevol lloc que vulgueu, el pitjor dels casos, no hi ha cap funció lligada a lol_hook. Dit d’una altra manera, ja tenim la infraestructura per crear els nostres propis ganxos!

Creació dels nostres propis enganxaments

Com he esmentat anteriorment, tot el que hem de fer és assegurar-nos d’utilitzar do_action () i / o add_filter i assegurar-nos que documentar-lo. D’aquesta manera els codificadors i usuaris realment sabran que hi és.

Suposem que creem una galeria de les darreres imatges penjades directament de la base de dades, una cosa així:

$ args = matriu (
‘post_type’ => ‘adjunt’,
‘post_status’ => ‘cap’,
‘ordre’ => ‘data’,
‘ordre’ => “DESC”,
‘posts_per_page’ => 10,
‘camps’ => “ids”
);
$ images = WP_Query nou ($ args);
$ gallery = ‘[‘ .’ID galeria ="’. implode (‘,’, $ imatges). ‘"’.’] ‘;
echo do_shortcode ($ galeria);

En aquest exemple, creem una consulta per assegurar-nos que només recuperem imatges, ordenades per data i limitades a 10 resultats. Utilitzant el paràmetre camps em vaig assegurar que es retornarà una matriu d’identificacions. A continuació, vaig crear un codi curt de galeria de WordPress amb aquesta informació.

Hi podeu fer dos enfocaments per afegir ganxos aquí. Podeu afegir-lo simplement abans de la definició de la matriu $ args, així:

$ posts_per_page = apply_filters (‘my_gallery / posts_per_page’, 10);

En aquest cas, haureu d’utilitzar la variable $ posts_per_page de la matriu. Potser una millor solució seria deixar modificar tota la matriu. Això permetria a altres complements (o a vosaltres, en el futur) afegir categoria, etiqueta i altres restriccions a les galeries; aquí teniu el codi complet:

$ args = matriu (
‘post_type’ => ‘adjunt’,
‘post_status’ => ‘cap’,
‘ordre’ => ‘data’,
‘ordre’ => “DESC”,
‘posts_per_page’ => 10,
‘camps’ => “ids”
);

$ args = apply_filters (‘my_gallery / query_args’, $ args);

$ images = WP_Query nou ($ args);
$ gallery = ‘[‘ .’ID galeria ="’. implode (‘,’, $ imatges). ‘"’.’] ‘;
echo do_shortcode ($ galeria);

Tot això hi ha. Altres complements ara poden utilitzar el ganxo my_gallery / query_args per modificar la funcionalitat de les galeries creades.

Nota sobre la denominació: la barra de tramesa no és necessària. Podeu utilitzar “my_plugin_query_args” o qualsevol altre format que desitgeu. Prefereixo la barra de translació perquè afirma clarament el complement que el crea i la funcionalitat que proporciona.

Conclusió

Els ganxos són extremadament potents i es poden utilitzar no només per estendre WordPress, sinó per estendre els vostres propis plugins o fins i tot temes. Heu de tenir cura de no passar per sobre del mar i afegir ganxos a tots els racons i aplicacions de l’aplicació.

En lloc d’afegir un ganxo a l’ordre, l’estat de la publicació, el tipus de publicació i els llocs_per_pàgina per separat, he afegit un filtre que pot modificar tota la matriu alhora. És possible que altres bits de dades no tinguin sentit per afegir enganxaments.

Sort que creeu aplicacions més modulars i extensibles, feu-nos saber si abans havíeu utilitzat els vostres propis ganxos!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Это интересно
    Adblock
    detector