Plugin – soubor s deklaracemi

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Plugin – soubor s deklaracemi

Zvolené téma obsahuje celkem 5 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Lukenzi a poslední změna je stará 13 let, 1 měsíc.

Aktuálně je na stránce zobrazeno 6 příspěvků - 1. až 6. (z celkem 6)
  • Autor
    Příspěvky
  • #934

    ajt
    Participant

    Ahoj, nevíte, jak to udělat, abych v pluginu mohl includovat soubor s nadeklarovanými proměnnými a funkcemi? Obsah souboru potřebuju mít v hlavním souboru pluginu a potom ještě na stránce s nastavením, jenomže PHP mi hlásí chybu s opětovnou deklarací fce. Níže je kód v hlavním souboru, který nefunguje, a nevím, jak jej opravit. Pomůžete mi?

    Díky.


    include(“deklarace.php”);

    //nějaký kód

    function plugin_options(){

    include(“deklarace.php”); //kvůli tomuto to nefunguje, ale já nevím, jak jinak to tam includovat

    include(“options.php”);

    }

    function plugin(){ //add a link to menu

    add_options_page(‘Plugin’, ‘Plugin’, administrator, ‘plugin’, ‘plugin_options’);

    }

    add_action(‘admin_menu’, ‘plugin’);

    #8111

    Lukenzi
    Participant

    A proč jeden soubor includuješ 2x po sobě? Vždyť ho tam máš už před //nějaký kod

    #8112

    ajt
    Participant

    Ano, ale protože je include(“options.php”) ve funkci, tak to pro stránku s nastavením nebude fungovat.

    #8113

    Lukenzi
    Participant

    Samozřejmě pokud to máš blbě tak ti to fungovat nebude nikdy. Stejný soubor nemůžeš includovat 2x protože bys všechny definované funkce v tom souboru měl definované taky 2x ,nebo pokud ten soubor něco provádí tak ti to udělá 2x, jednou na začátku a podruhé při vytvoření stránky v administraci.

    Pokud nelze vynechat to první include a z toho souboru “deklarace.php” využíváš nějaké proměnné i ve funkci “plugin_options()” musíš té funkci říct kde má ty proměnné vzít.

    Příklad:

    V souboru “deklarace.php” máš proměnnou “$nastaveni” a chceš tuto proměnnou použít i ve funkci “plugin_options()”, potom tu funkci upravíš takhle:

    function plugin_options(){

    global $nastaveni;

    add_options_page('Plugin', 'Plugin', administrator, 'plugin', 'plugin_options');

    }

    Díky tomu kouzelnému slůvku “global”, bude už funkce vědět, že ta proměnná je někde mimo ní a použije ji. Jinak pokud takhle děláš plugin, tak je něco špatně, protože nemá žádnou logiku. Mnohem lepší je všechno obalit do třídy a přistupovat k proměnným jen přes $this->promenna; pak ti tyhle starosti úplně odpadnou, když už na to příjde teda…

    #8114

    ajt
    Participant

    Pomocí global by to šlo, ale mám tam i nějaké fce. No, zkusím se na ty třídy mrknout, díky za tip.

    #8115

    Lukenzi
    Participant

    S funkcemi to nemá nic společného, když ji jednou někde definuješ tak je přístupná odkudkoliv, pomocí global by to šlo protože jinak to nejde. Doporučil bych trochu nastudovat PHP než se dáš na nějaké programování pluginů. Ušetříš si spoustu starostí…

Aktuálně je na stránce zobrazeno 6 příspěvků - 1. až 6. (z celkem 6)

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

WordPress – novinky, návody a zajímavosti