Gutenberg blokk egyedi beállítások JavaScript segítségével.

A Gutenberg-blokkok varázsa: Hogyan készíts saját, testreszabható blokkot WordPress weboldaladhoz?

Ha már hallottál a WordPress Gutenberg szerkesztőről, de úgy érzed, hogy a beépített blokkok korlátot szabnak kreativitásodnak vagy üzleti igényeidnek, akkor ez a cikk neked szól. Nem csak fejlesztőknek, hanem minden kisvállalkozónak és céges döntéshozónak, aki saját WordPress weboldal készítését vagy fejlesztését fontolgatja. Ma betekintést nyerünk abba, hogyan készíthetsz saját Gutenberg-blokkot egyedi beállításokkal – anélkül, hogy elmerülnél a technikai mélységekben.

Miért éri meg saját blokkot fejleszteni?

A Gutenberg nem csupán egy egyszerű szerkesztő, hanem egy teljes értékű, blokkalapú rendszer, amely forradalmasította a honlapkészítést. Gondolj csak bele: minden egyes webelem – bekezdés, kép, gomb, táblázat – egy blokk. De mi történik, amikor szükséged van valamire, ami nincs a kínálatban? Például egy speciális árképző táblázatra, egy egyedi referencialistára, vagy egy olyan időjárás-widgetre, amely pontosan a vállalatod brandingjével illeszkedik?

Itt jön képbe a saját blokk fejlesztése. Nem kell megalkudnod általános megoldásokkal. Létrehozhatsz olyan elemet, amely tökéletesen passzol az üzleti folyamataidhoz, és amelyet a marketingesed vagy a tartalomkészítőd is könnyedén használhat – anélkül, hogy kódot kellene írnia.

A háttérben: PHP és a blokk regisztráció

Minden egyedi blokk két részből áll: a backendből (ami PHP nyelven fut a szerveren) és a frontendből (ami a böngészőben él, JavaScript segítségével). Kezdjük a PHP háttérrel, ami lényegében bejelenti a WordPressnek, hogy „Hé, itt van egy új blokk!”

 'sajat-blokk-script',
        'render_callback' => 'render_sajat_blokk',
        'attributes' => array(
            'focim' => array('type' => 'string', 'default' => 'Üdvözlő szöveg'),
            'szin' => array('type' => => 'string', 'default' => '#337ab7'),
            'ismetles' => array('type' => 'number', 'default' => 3)
        )
    ));
}
add_action('init', 'regisztrálj_saját_blokkot');

function render_sajat_blokk($attributes) {
    $kimenet = '<div class="sajat-blokk">';
    $kimenet .= '<h3>' . esc_html($attributes['focim']) . '</h3>';
    
    for ($i = 0; $i < $attributes['ismetles']; $i++) {
        $kimenet .= '<p>Ez egy testreszabható blokk példa.</p>';
    }
    
    $kimenet .= '</div>';
    return $kimenet;
}
?>

Láthatod, hogy a register_block_type függvény definiálja a blokkunkat. A render_callback pedig a PHP függvény, amely később a weboldalon megjeleníti a blokk tartalmát a felhasználó által bevitt beállításokkal. Az attributes tömbben pedig definiáljuk, hogy milyen beállításokat szeretnénk a blokkhoz (jelen esetben címet, színt és ismétlési számot).

Az előtér csínja: JavaScript, beállítások és a szerkesztői felület

Amikor a felhasználó a WordPress admin felületén hozzáadja a blokkot és rákattint, jobb oldalon megjelennek a beállítások. Ezeket JavaScript segítségével hozzuk létre. Itt használhatnánk React-et (amire a Gutenberg épül), de egy egyszerűbb példa kedvéért maradjunk a klasszikus JavaScript-nél, ami mindenkinek ismerős.

(function(blocks, element, editor, components) {
    var el = element.createElement;
    var registerBlockType = blocks.registerBlockType;
    var InspectorControls = editor.InspectorControls;
    var TextControl = components.TextControl;
    var ColorPicker = components.ColorPicker;
    var RangeControl = components.RangeControl;

    registerBlockType('sajat-névtér/sajat-blokk', {
        title: 'Saját Testreszabható Blokk',
        icon: 'admin-customizer',
        category: 'design',
        
        edit: function(props) {
            var attributes = props.attributes;
            
            function onChangeFocim(ujFocim) {
                props.setAttributes({focim: ujFocim});
            }
            
            function onChangeSzin(ujSzin) {
                props.setAttributes({szin: ujSzin});
            }
            
            function onChangeIsmetles(ujIsmetles) {
                props.setAttributes({ismetles: ujIsmetles});
            }
            
            return [
                el('div', {className: props.className},
                    el('h3', null, attributes.focim),
                    el('p', null, 'Ez a blokk előnézete. A beállítások a jobb oldalon.')
                ),
                el(InspectorControls, null,
                    el(TextControl, {
                        label: 'Blokk címe',
                        value: attributes.focim,
                        onChange: onChangeFocim
                    }),
                    el(ColorPicker, {
                        color: attributes.szin,
                        onChangeComplete: onChangeSzin,
                        label: 'Vonal színe'
                    }),
                    el(RangeControl, {
                        label: 'Bekezdések ismétlése',
                        value: attributes.ismetles,
                        onChange: onChangeIsmetles,
                        min: 1,
                        max: 10
                    })
                )
            ];
        },
        
        save: function() {
            return null; // A PHP render_callback gondoskodik a megjelenítésről
        }
    });
})(
    window.wp.blocks,
    window.wp.element,
    window.wp.editor,
    window.wp.components
);

A megjelenés formálása: CSS/SCSS

Természetesen minden blokk igényli a megfelelő stílusokat. Itt egy példa SCSS kódra, amely formázza a blokkunkat:

.sajat-blokk {
    padding: 20px;
    margin: 25px 0;
    background-color: #f9f9f9;
    border-radius: 5px;
    
    h3 {
        margin-top: 0;
        color: #333;
        font-size: 1.5em;
    }
    
    p {
        line-height: 1.6;
        margin-bottom: 10px;
        
        &:last-child {
            margin-bottom: 0;
        }
    }
    
    // Reszponzív design
    @media (max-width: 768px) {
        padding: 15px;
        margin: 15px 0;
    }
}

Gyakori buktatók és tanácsok webfejlesztőknek és döntéshozóknak

1. Ne feledd a kompatibilitást: A blokkodat teszteld több WordPress verzióval és különböző témákkal. Egy sikeres WordPress weboldal készítés során a kompatibilitás kulcsfontosságú.

2. UI/UX első: A döntéshozóknak fontos tudni, hogy a blokk beállításai legyenek intuitívak. A végfelhasználó (aki lehet a marketingesed) nem akar programozni, csak gyorsan, egyszerűen módosítani.

3. Teljesítmény számít: Minden extra blokk terheli a weboldalt. Optimalizáld a kódodat, és csak a szükséges függőségeket tartsd meg.

4. Dokumentáld: Ha webfejlesztést ajánlasz ügyfeleidnek, dokumentáld a blokk használatát. Ez óriási időmegtakarítás a későbbiekben.

5. SEO szempont: A blokkod által generált HTML legyen szemantikus és keresőbarát. Ne csak div-ek halmaza legyen, hanem használj megfelelő heading és struktúrális elemeket.

Összegzés: Miért éri meg befektetni saját blokk fejlesztésbe?

A saját Gutenberg-blokk készítése nem csupán egy technikai gyakorlat. Egy üzleti döntés, amely hosszú távon megtérül:

Hatékonyság: A tartalomkészítők gyorsabban dolgoznak ismert, testreszabott eszközökkel. – Konzisztencia: Minden weblapon ugyanaz a professzionális megjelenés. – Skálázhatóság: Könnyen duplikálhatod a blokkot más weboldalakon vagy projekteken. – Versenyelőny: Olyan funkciókat kínálhatsz, amit más honlapkészítési megoldások nem.

Akár kisvállalkozóként saját weboldalad építed, akár webfejlesztési szolgáltatást nyújtasz, a saját Gutenberg-blokkok fejlesztése egy olyan készség, amely mélyebb kontrollt ad a webprésenced felett, és lehetővé teszi, hogy valóban egyedivé tegyed a digitális jelenléted. A WordPress weboldal készítés már rég túlnőtt az egyszerű sablonok használatán – ma a testreszabás és a rugalmasság uralja a piacot, és a saját blokkjaid pont ezt nyújtják.

A weboldalon megjelenő szöveges és vizuális tartalmak előállításához mesterséges intelligenciát (AI) használunk.