✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

10

Mõne PHP-koodiga on täpsemate kohandatud väljade (ACF) väärtuse või valikute dünaamiline sisestamine väga lihtne. Seda saate teha mis tahes tüüpi sisendite jaoks, sealhulgas raadio, märkeruutude jms jaoks. Selles postituses vaatame, kuidas.

Filter

Advanced Custom Fields pakub filtrit nimega [acf/load_field](https://www.advancedcustomfields.com/resources/acf-load_field/). Saate seda filtrit kasutada mitmel erineval viisil. Filtreerige acf/load_field, et rakendada see igat tüüpi väljadele, või lisage kood oma konksuga funktsiooni sisse, et välja selgitada, millist välja tüüpi või nime soovite. Või saate määrata kas välja tüübi (acf/load_field/type=<type>), nime (acf/load_field/name=<name>) või võtme (acf/load_field/key=<key>).

Oletame, et loome tekstivälja järgmiselt:

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

Võiksime seda sihtida acf/load_field/name=dyn_pop_example(sihib ainult seda konkreetset välja) acf/load_field/type=text(kehtib kõikidele tekstitüüpi väljadele) või acf/load_field(kehtib kõikidele mis tahes tüüpi või nimega väljadele). Kahe viimase filtri kasutamisel saate muidugi funktsiooni sees sihtida konkreetse välja teabe, näiteks nime järgi. Iga ACF-i väli saab samuti ainulaadse võtme, kuid need on peidetud ja on enamasti mõeldud ACF-i sisekasutuseks.

Filter annab ühe muutuja; välja massiiv. See massiiv annab teile kogu teabe praeguse välja kohta. Te muudate lihtsalt massiivi teavet ja tagastate muudetud välja massiivi. Sõltuvalt välja tüübist erinevad massiivi elemendid. Näiteks mitme valikuga väljatüüpidel, nagu Select ja Radioboxes, on massiivielement ‘ choices‘, mida näiteks tüüpi tekst väljadel ei ole. Soovitan teil teha var_dump()pakutud massiivi, et näha, millisele teabele teil on juurdepääs.

Alustame tegeliku koodi uurimist!

Rahvastik: lihtsad näited

Tekstisisestuse vaikeväärtuse määramine näeks välja umbes selline:

add_filter('acf/load_field/name=dyn_pop_example', function($field) {
    $field['default_value'] = __('This is default value', 'txtdomain');
    return $field;
});

Sihime oma tekstisisestuse nimega dyn_pop_exampleja määrame selle vaikeväärtuse (klahv ‘ default_value‘) enda valitud stringile. Seejärel kuvatakse väli järgmiselt:

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

Saate muuta mis tahes välja sätteid. Allolevas näites määrame teksti kohahoidja ja juhised:

add_filter('acf/load_field/name=dyn_pop_example', function($field) {
    $field['placeholder'] = __('Type in here', 'txtdomain');
    $field['instructions'] = __('Some instructions coming from code', 'txtdomain');
    return $field;
});

Mis muudab välja selliseks:

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

Rahva valikud

Kui soovite dünaamiliselt täita valiku-, raadio- või märkevälja valikuid, tehke seda massiivi võtmeelemendis " choices". See choiceselement kehtib kõikidele väljadele, mille tüüp on valik, raadio ja märkeruut.

Element „ choices" peab olema võtme + väärtuse paaride massiiv. Võtmed on väärtused (mis salvestatakse) ja väärtused on silt, mis kuvatakse valikuna.

Oletame, et muudame oma välja valikuks. Võite jätta valikud tühjaks, kuna need määratakse meie koodi kaudu.

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

Valitud valikute täitmiseks teeme seda järgmiselt:

add_filter('acf/load_field/name=dyn_pop_example', function($field) {
    $choices = [
        'red' => __('Red Color', 'txtdomain'),
        'blue' => __('Blue Color', 'txtdomain'),
        'green' => __('Green Color', 'txtdomain')
    ];
    $field['choices'] = $choices;
    $field['default_value'] = 'blue';
    return $field;
});

Real #2 - #6määratleme lihtsalt valikute massiivi. Muutke seda vastavalt oma vajadustele. Real #7omistame välja valikud oma massiivile. Hea mõõtmise huvides määrame ka välja vaikeväärtuse. See pole vajalik – ilma reata #8valiks valik lihtsalt automaatselt massiivi esimese valiku (‘punane’).

Ülaltoodud kood renderdab välja järgmiselt:

Kuidas dünaamiliselt täita täpsemaid kohandatud väljade sätteid

Valikud on teie enda teha, kõik, mida peate hoolitsema, on anda välja choiceselemendile õige võti + väärtuste massiiv. Põhinäitena näitab see koodinäide, kuidas saate muuta tavalise valikuvälja postituste valikuks.

add_filter('acf/load_field/name=dyn_pop_example', function($field) {
    $posts = new WP_Query([
        'post_type' => 'page',
        'posts_per_page' => -1
    ]);
    $choices = [];
    while ($posts->have_posts()) { 
        $posts->the_post();
        $choices[get_the_ID()] = get_the_title();
    }
    wp_reset_query();
    $field['choices'] = $choices;
    return $field;
});

Ülaltoodud koodinäide loob postituspäringu, mis toob kõik lehed ja täidab valikute massiivi postituste ID-dega võtmetena ja postituste pealkirjadega väärtustena. See on lihtsalt näide; kui kavatsete postitusi valida, pakub ACF spetsiaalselt selle jaoks muid väljatüüpe.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem