✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Mukautettujen suodattimien käyttäminen lyhytkoodien kanssa

22

Kun ymmärrät Shortcode API :n ja suodattimien toiminnan, on helppo ottaa ne käyttöön WordPressissä.

Mukautettujen suodattimien käyttäminen lyhytkoodien kanssa

Ja kun pystyt yhdistämään nämä kaksi, voit tehdä paljon enemmän kuin tavallisesti kuin silloin, kun ne toimivat toisistaan ​​riippumatta.

Erityisesti voit suodattaa tietoja, jotka ovat lyhytkoodin tuloksena, ja tämä voi olla erityisen hyödyllistä muille kehittäjille. Jos olet perehtynyt mukautettujen suodattimien käyttöön, sen tekeminen lyhyen koodin yhteydessä ei ole paljon erilaista.

Mutta jos et ole koskaan aiemmin käyttänyt joko lyhytkoodisovellusliittymää tai toimintoja, se on silti helppo tehdä.

Mukautetut suodattimet lyhytkoodeilla

Tässä viestissä käytämme suhteellisen keksittyä esimerkkiä. Eli lyhytkoodi johtaa johonkin staattiseen. Syynä on, että sen avulla on helppo demonstroida viestissä ja ottaa se käyttöön koodissasi.

Lyhytkoodi

Lyhytkoodin käyttöönottamiseksi tarvitset kaksi asiaa:

  1. mukautettu nimi lyhytkoodille,
  2. toiminto, jota käytetään pudottamaan tietoja sinne, missä lyhytkoodia käytetään.
<?php

namespace Acme;

add_shortcode('a_simple_example', __NAMESPACE__. 'aSimpleExample');
/**
 * Replaces [a_simple_example] short code with the text "This is the result of an example shortcode."
 * whenever the shortcode is placed in a post or page.
 */
function aSimpleExample()
{
  return 'This is the result of an example shortcode.';
}

Huomaa yllä olevassa koodissa; Olen lisännyt funktion etuliitteen kanssa. __NAMESPACE__Tämä johtuu siitä, että funktio sijaitsee mukautetussa nimiavaruudessa (jonka näet tiedoston yläosassa).

Ilman tätä etuliitettä funktiota ei kutsuta. Jos päätät olla käyttämättä nimiavaruuksia, voit jättää käyttämättä sekä etuliitettä että funktion nimen alkuviivaa.

Huomaa, että palaamme tähän toimintoon heti, kun saamme suodattimen paikalleen.

Suodatin

Mukautetun suodattimen lisääminen on samanlaista kuin lyhytkoodin lisääminen. Tarvitset:

  1. mukautettu suodattimen nimi,
  2. toiminto, jota käytetään suodattamaan saapuvat tiedot (ja suodattimien tulisi yleensä hyväksyä vähintään yksi parametri, joka on tietysti suodatettava data):

Yllä olevan esimerkin noudattamiseksi sanotaan, että haluamme vain korvata muutaman sanan lyhytkoodissa :

<?php

namespace Acme;

add_filter('custom_shortcode_example', __NAMESPACE__. 'aSimpleShortcodeFilter');
/**
 * Replaces [a simple example] short code with the text "This is the result of an example shortcode."
 * whenever the shortcode is placed in a post or page.
 *
 * @param string $input the input to filter.
 *
 * @return string       the result of the filter running on the input
 */
function aSimpleShortcodeFilter(string $input): string
{
  return str_ireplace(
    'an example shortcode.',
    'a filtered shortcode',
    $input
  );
}

Tämä korvaa seuraavan sisällön:

Tämä on tulosta esimerkkilyhytkoodista.

Vastaanottaja:

Tämä on seurausta suodatetusta lyhytkoodista.

Mutta meidän on silti yhdistettävä ne kaksi.

Lyhytkoodin uudelleenkäynti

Jotta nämä kaksi funktiota voidaan yhdistää, meidän on varmistettava, että lyhytkoodin funktio käyttää suodatinta palauttamaansa arvoon.

Onneksi sen toteuttaminen on yksinkertaista, varsinkin kun meillä on kaikki mitä tarvitsemme:

<?php

namespace Acme;

add_shortcode('a_simple_example', __NAMESPACE__. 'aSimpleExample');
/**
 * Replaces [a_simple_example] short code with the text "This is the result of an example shortcode."
 * whenever the shortcode is placed in a post or page.
 */
function aSimpleExample()
{
  return apply_filters('custom_shortcode_example', 'This is the result of an example shortcode.');
}

Konkreettisemmassa esimerkissä suosittelen aina tarkistamaan, ettei parametrin tulos ole tyhjä, että se sisältää etsimäni merkkijonon tai jotain vastaavaa.

Eli tykkään usein avata vartiolausekkeella. Jos testi epäonnistuu, palautan vain saapuvan arvon; Muussa tapauksessa suodatan tiedot ja palautan toiminnon tuloksen.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja