{"id":415,"date":"2017-05-08T12:50:24","date_gmt":"2017-05-08T10:50:24","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=415"},"modified":"2017-05-08T12:50:24","modified_gmt":"2017-05-08T10:50:24","slug":"options-benutzerdefinierte-globale-variable","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/05\/08\/options-benutzerdefinierte-globale-variable\/","title":{"rendered":"Options: benutzerdefinierte globale Variable"},"content":{"rendered":"<h2>Wozu globale Variable?<\/h2>\n<p>Manchmal braucht man Werte, die global in WordPress zur Verf\u00fcgung stehen sollen. Man kann nat\u00fcrlich Shortcodes definieren, die nur einen bestimmten Wert zur\u00fcckgeben (return &#8222;ABCD&#8220;;), aber mit dem Shortcode ist man logischerweise abh\u00e4ngig vom Theme, wenn man das Theme wechselt ist auch der Shortcode und der Wert futsch. WordPress bietet da alternativ eine h\u00fcbsch simple M\u00f6glichkeit, eigene Werte in der Datenbank abzulegen und auch wieder herauszuholen.<\/p>\n<h2>Die WordPress Options<\/h2>\n<p>Kurzer Blick in den Codex: <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/add_option\">add_option()<\/a> legt ein Wertepaar (Option Name und Wert) in der WordPress-Tabelle wp_options ab. Mit get_option(&#8218;optionsname&#8216;) holt man sich den Wert bei Bedarf wieder heraus. Ich zitiere nochmal kurz den Codex:<\/p>\n<blockquote><p>If you are trying to ensure that a given option is created, use <a title=\"Function Reference\/update option\" href=\"https:\/\/codex.wordpress.org\/Function_Reference\/update_option\">update_option()<\/a> instead, which bypasses the option name check and updates the option with the desired value whether or not it exists.<\/p><\/blockquote>\n<p>Wir nehmen also lieber die Funktion update_option(), die uns auf jeden Fall den Datenbankeintrag anlegt, falls er noch nicht existiert. Das sieht dann etwa so aus:<\/p>\n<p><em>update_option (&#8218;mein_code&#8216;, &#8218;Evis neuer Code&#8216;);<\/em><\/p>\n<p>Das &#8218;<em>mein_code<\/em>&#8218; ist der Name der Option, diese wird durch das update_option() neu angelegt, falls sie noch nicht existiert. Der zweite Parameter setzt den Wert (value) der neuen Option, hier habe ich einfach einen String eingesetzt. Das Feld option_value ist \u00fcbrigens ein longtext, da k\u00f6nnen sie bis zu <span class=\"st\">2^32 Bytes<\/span> speichern, also nur keine Hemmungen!<\/p>\n<h2>Wie sieht das in der Datenbank aus?<\/h2>\n<p>Braucht uns eigentlich nicht zu k\u00fcmmern, da wir ja den Wert der Option nachher mit get_option() herausholen, aber ich zeigs mal der Vollst\u00e4ndigkeit halber:<\/p>\n<div id=\"attachment_416\" style=\"width: 972px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-416\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-416\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/05\/options.jpg\" alt=\"options\" width=\"962\" height=\"387\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/05\/options.jpg 962w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/05\/options-300x121.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/05\/options-768x309.jpg 768w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2017\/05\/options-624x251.jpg 624w\" sizes=\"(max-width: 962px) 100vw, 962px\" \/><p id=\"caption-attachment-416\" class=\"wp-caption-text\">options<\/p><\/div>\n<p>Die neue Option kriegt eine AutoIncrement-ID, in <em>option_name<\/em> landet der angegebene Name, in <em>option_value<\/em> der gew\u00fcnschte Wert der Option, und das <em>autoload<\/em> wird defaultm\u00e4\u00dfig auf <em>yes<\/em> gesetzt und braucht uns nicht weiter zu k\u00fcmmern.<\/p>\n<h2>Wie man den Wert der Option wieder herauskriegt<\/h2>\n<p>Ganz simpel. Mit get_option($option_name). Der Code f\u00fcr die Ausgabe sieht zum Beispiel so aus:<\/p>\n<p><em>$akt_option = get_option (&#8218;mein_code&#8216;);<\/em><br \/>\n<em>echo &#8222;Wert von akt_option :&amp;nbsp&#8220;.$akt_option;<\/em><\/p>\n<p>Das erzeugt die Ausgabe:<\/p>\n<p><strong>Wert von akt_option :\u00a0 Evis neuer Code<\/strong><\/p>\n<p>Eigentlich selbsterkl\u00e4rend.<\/p>\n<p>Und wohin jetzt mit den update- und get- Anweisungen? Daf\u00fcr (t\u00e4ter\u00e4t\u00e4\u00e4!) schreiben wir unser erstes Plugin, und dazu gibts nat\u00fcrlich einen neuen Beitrag.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wozu globale Variable? Manchmal braucht man Werte, die global in WordPress zur Verf\u00fcgung stehen sollen. Man kann nat\u00fcrlich Shortcodes definieren, die nur einen bestimmten Wert zur\u00fcckgeben (return &#8222;ABCD&#8220;;), aber mit dem Shortcode ist man logischerweise abh\u00e4ngig vom Theme, wenn man das Theme wechselt ist auch der Shortcode und der Wert futsch. WordPress bietet da alternativ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,4,2],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/415"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=415"}],"version-history":[{"count":1,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":417,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/415\/revisions\/417"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}