Jak správně zacházet s register_setting()

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Jak správně zacházet s register_setting()

Zvolené téma obsahuje celkem 2 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  zeminem a poslední změna je stará 12 let, 8 měsíců.

Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (z celkem 3)
  • Autor
    Příspěvky
  • #1407

    zeminem
    Participant
    Web

    Ahoj,

    chtěl bych se zeptat někoho, kdo dělá pluginy, nebo šablony s option page.

    Používám totiž funkce register_setting(), delete_option(), add_option(), ale jelikož je celý plugin prakticky o nastavování tak je těchto options opravdu hodně. Proto bych rád věděl jak to dělá někdo jiný. Zakládáte si vlastní tabulku v DB, nebo to takto normálně vše ukládáte do tabulky wp_option? Je opravdu to co dělám já správné? Tzn. desítky těchto funkcí pod sebou, nebo se to nechá udělat úsporněji?

    #10493

    admin
    Keymaster
    Web

    Myslím, že použití těchto funkcí, které využívají tabulku options je správné. Pokud použijete vlastní tabulku, tak si budete muset napsat vlastní funkce na ukládání (upravování, mazání) dat, protože add_option() a další nebudou v tomto případě fungovat, stejně tak jako automatické cachování při načítaání hodnot z nastavení. Možná by stálo za to ukládání nastavení nějak optimalizovat, tedy seskupit je podle nějakého logického klíče a pracovat s nimi najednou v podobě pole, které bude při ukládání automaticky serializováno. Ale těžko říci…

    Můžete také zkusit použít nějaký stávající framework pro správu různých nastavení, který může uspořit mnoho práce. Nedávno se mi docela zalíbil plugin Options Framework, mezi další patří např. Plugin Options Starter Kit. Výhodou je právě snadnější tvorba početných nastavení a možnost jejich snadného přenosu (myslím, že fungovala pomocí .xml souborů).

    #10494

    zeminem
    Participant
    Web

    Díky za informace, snažím se to ukládat v polích, ale musím to vyřešit co nejúsporněji. Hledal jsem inspiraci u jiných pluginů, ale tam nikdo tolik předvolených hodnot nepoužívá. Bohužel implantovat ještě jiný plugin nejde, protože to musí být co nejmenší. Každopádně asi bude schopen eliminovat přehršel zbytečných register_setting(), resp. register_setting jednoho velkého pole, protože jsem našel, že to jde i bez toho:

    $options = get_option(ID);
    if(!is_array($options)) {
    $options = array( ... );
    }
    if($_POST['submit']) {
    $options['...'] = htmlspecialchars($_POST['...']);
    update_option(ID, $options);
    }

    Navíc mi to otevírá nové možnosti, jako například 100% kontrola vstupu. Každopádně zase tam bude hodně jiných věcí (vkládání do pole), takže je to spíše pořád z bláta do louže. Každopádně díky za typ na pluginy, kde se toto již vyřešilo, podívám se na to…

Aktuálně jsou na stránce zobrazeny 3 příspěvky - 1. až 3. (z celkem 3)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti